diff --git a/doc/props/P_ABILITIES b/doc/props/P_ABILITIES
index b82a0f6..b852bdf 100644
--- a/doc/props/P_ABILITIES
+++ b/doc/props/P_ABILITIES
@@ -1,9 +1,22 @@
-NAME:
-    P_ABILITIES                   "abilities"                   
 
-DEFINIERT IN:
-    /sys/living/attributes.h
+P_ABILITIES
+***********
 
-BESCHREIBUNG:
-     *** OBSOLET! ***
-     Siehe P_NEWSKILLS.
+
+NAME
+====
+
+   P_ABILITIES                   "abilities"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/attributes.h
+
+
+BESCHREIBUNG
+============
+
+   *** OBSOLET! ***
+   Siehe P_NEWSKILLS.
diff --git a/doc/props/P_AC b/doc/props/P_AC
index c62d786..e9eda47 100644
--- a/doc/props/P_AC
+++ b/doc/props/P_AC
@@ -1,28 +1,44 @@
+
 P_AC
+****
 
-NAME:
-     P_AC "ac"
 
-DEFINIERT IN:
-     <armour.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property beschreibt die Ruestungsklasse (engl: armour class),
-     also den Schutz, den die Ruestung dem Traeger verleiht. Je hoeher der
-     Wert (als Zahl), um so besser ist die Ruestung. Negative Werte bewirken
-     negativen Schutz, d.h. der Schaden wird vergroessert statt verringert.
+   P_AC "ac"
 
-BEMERKUNGEN:
-     Query- und Setmethoden auf P_AC sollten unbedingt vermieden werden. Sie
-     fuehren in der Regel zu massiven Inkonsistenzen im Mechanismus der
-     Ruestungsbeschaedigung und -reparatur.
-     Fuer jeden Ruestungstyp ist in <combat.h> eine Obergrenze definiert,
-     die man nicht ueberschreiten darf.
-     Ruestungen vom Typ AT_MISC haben immer AC 0 und werden mit keinen 
-     hoeheren Werten genemigt.
 
-SIEHE AUCH:
-     /std/armour.c, P_DAMAGED, Damage() P_TOTAL_AC
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <armour.h>
+
+
+BESCHREIBUNG
+============
+
+   Diese Property beschreibt die Ruestungsklasse (engl: armour class),
+   also den Schutz, den die Ruestung dem Traeger verleiht. Je hoeher der
+   Wert (als Zahl), um so besser ist die Ruestung. Negative Werte bewirken
+   negativen Schutz, d.h. der Schaden wird vergroessert statt verringert.
+
+
+BEMERKUNGEN
+===========
+
+   Query- und Setmethoden auf P_AC sollten unbedingt vermieden werden. Sie
+   fuehren in der Regel zu massiven Inkonsistenzen im Mechanismus der
+   Ruestungsbeschaedigung und -reparatur.
+   Fuer jeden Ruestungstyp ist in <combat.h> eine Obergrenze definiert,
+   die man nicht ueberschreiten darf.
+   Ruestungen vom Typ AT_MISC haben immer AC 0 und werden mit keinen
+   hoeheren Werten genemigt.
+
+
+SIEHE AUCH
+==========
+
+   /std/armour.c, P_DAMAGED, Damage() P_TOTAL_AC
+
 02.10.2007, Zesstra
diff --git a/doc/props/P_ACCEPT_PEACE b/doc/props/P_ACCEPT_PEACE
index 07b63a0..214dc06 100644
--- a/doc/props/P_ACCEPT_PEACE
+++ b/doc/props/P_ACCEPT_PEACE
@@ -1,18 +1,37 @@
-PROPERTY
-     P_ACCEPT_PEACE                           "accept_peace"
 
-DEFINIERT IN 
-	/sys/combat.h
+P_ACCEPT_PEACE
+**************
+
+
+PROPERTY
+========
+
+   P_ACCEPT_PEACE                           "accept_peace"
+
+
+DEFINIERT IN
+============
+
+   /sys/combat.h
+
 
 BESCHREIBUNG
-	Mittels setzen Dieser Prop lassen sich leicht NPCs bauen,
-	die von jedem zu befrieden sind. Wenn die Property == 1 ist,
-	ist der NPC immer wieder befriedbar, sonst fuehrt der NPC das
-	uebliche Verhalten aus.
+============
+
+   Mittels setzen Dieser Prop lassen sich leicht NPCs bauen,
+   die von jedem zu befrieden sind. Wenn die Property == 1 ist,
+   ist der NPC immer wieder befriedbar, sonst fuehrt der NPC das
+   uebliche Verhalten aus.
+
 
 SIEHE AUCH
-  QueryPacify(),
-  P_PEACE_HISTORY
+==========
+
+   QueryPacify(),
+   P_PEACE_HISTORY
+
 
 LETZTE AENDERUNG
+================
+
 01.05.2008, Zesstra
diff --git a/doc/props/P_ACHATS b/doc/props/P_ACHATS
index 4097620..c62e357 100644
--- a/doc/props/P_ACHATS
+++ b/doc/props/P_ACHATS
@@ -1,8 +1,21 @@
-NAME:
-    P_ACHATS                      "achats"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_ACHATS
+********
 
-BESCHREIBUNG:
-     Chats, die das Monster im Kampf ausgibt.
+
+NAME
+====
+
+   P_ACHATS                      "achats"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Chats, die das Monster im Kampf ausgibt.
diff --git a/doc/props/P_ACHAT_CHANCE b/doc/props/P_ACHAT_CHANCE
index 9ccdf16..fc28ac9 100644
--- a/doc/props/P_ACHAT_CHANCE
+++ b/doc/props/P_ACHAT_CHANCE
@@ -1,8 +1,21 @@
-NAME:
-    P_ACHAT_CHANCE                "achat_chance"                
 
-DEFINIERT IN:
-    /sys/properties.h
+P_ACHAT_CHANCE
+**************
 
-BESCHREIBUNG:
-     Wahrscheinlichkeit fuer die Attack-Chat-Ausgabe.
+
+NAME
+====
+
+   P_ACHAT_CHANCE                "achat_chance"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wahrscheinlichkeit fuer die Attack-Chat-Ausgabe.
diff --git a/doc/props/P_ACTUAL_NOTIFY_FAIL b/doc/props/P_ACTUAL_NOTIFY_FAIL
index 435a646..0c9acd1 100644
--- a/doc/props/P_ACTUAL_NOTIFY_FAIL
+++ b/doc/props/P_ACTUAL_NOTIFY_FAIL
@@ -1,27 +1,51 @@
-********************** VERALTETE PROPERTY *********************************
-NAME:
-     P_ACTUAL_NOTIFY_FAIL          "actual_notify_fail"          
 
-DEFINIERT IN:
-     /sys/player.h
+P_ACTUAL_NOTIFY_FAIL
+********************
 
-ACHTUNG:
-     Diese Prop wird nicht mehr gesetzt (und auch nicht mehr abgefragt), da LD
-     eine efun hat, um das Objekt zu ermitteln, was als letztes ein
-     notify_fail() gesetzt hat, ein Speichern im Spieler also voellig
-     ueberfluessig ist.
+********************** VERALTETE PROPERTY
+*********************************
 
-BESCHREIBUNG:
-     Ist im Spielerobjekt  gesetzt und enthaelt das Objekt, welches zuletzt
-     eine Fehlermeldung mit notify_fail()/_notify_fail() erfolgreich
-     waehrend des aktuellen Kommandos abgespeichert hat.
 
-BEMERKUNGEN:
-     Dient dazu, bei _notify_fail() zu ueberpruefen, ob schon vorher eine
-     Fehlermeldung gesetzt wurde.
+NAME
+====
 
-SIEHE AUCH:
-     AddCmd(), add_action()
-     notify_fail(), _notify_fail()
+   P_ACTUAL_NOTIFY_FAIL          "actual_notify_fail"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+ACHTUNG
+=======
+
+   Diese Prop wird nicht mehr gesetzt (und auch nicht mehr abgefragt), da LD
+   eine efun hat, um das Objekt zu ermitteln, was als letztes ein
+   notify_fail() gesetzt hat, ein Speichern im Spieler also voellig
+   ueberfluessig ist.
+
+
+BESCHREIBUNG
+============
+
+   Ist im Spielerobjekt  gesetzt und enthaelt das Objekt, welches zuletzt
+   eine Fehlermeldung mit notify_fail()/_notify_fail() erfolgreich
+   waehrend des aktuellen Kommandos abgespeichert hat.
+
+
+BEMERKUNGEN
+===========
+
+   Dient dazu, bei _notify_fail() zu ueberpruefen, ob schon vorher eine
+   Fehlermeldung gesetzt wurde.
+
+
+SIEHE AUCH
+==========
+
+   AddCmd(), add_action()
+   notify_fail(), _notify_fail()
 
 10.03.2007, Zesstra
diff --git a/doc/props/P_ADJECTIVES b/doc/props/P_ADJECTIVES
index 3b44a4f..1c8ccb6 100644
--- a/doc/props/P_ADJECTIVES
+++ b/doc/props/P_ADJECTIVES
@@ -1,22 +1,38 @@
+
 P_ADJECTIVES
+************
 
-NAME:
-     P_ADJECTIVES "adjectives"
 
-DEFINIERT IN:
-     <thing/description.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Hier steht ein Array von Strings, welche die Identifizierung des
-     Objektes ergaenzen. Die Verwaltung erfolgt ueber die Funktionen
-     AddAdjective() und RemoveAdjective().
+   P_ADJECTIVES "adjectives"
 
-BEMERKUNGEN:
-     Man sollte an dieser Property nicht "von Hand" herumfummeln, sondern
-     immer die zugehoerigen Funktionen benutzen!
 
-SIEHE AUCH:
-     /std/thing/description.c, AddAdjective(), RemoveAdjective()
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <thing/description.h>
+
+
+BESCHREIBUNG
+============
+
+   Hier steht ein Array von Strings, welche die Identifizierung des
+   Objektes ergaenzen. Die Verwaltung erfolgt ueber die Funktionen
+   AddAdjective() und RemoveAdjective().
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte an dieser Property nicht "von Hand" herumfummeln, sondern
+   immer die zugehoerigen Funktionen benutzen!
+
+
+SIEHE AUCH
+==========
+
+   /std/thing/description.c, AddAdjective(), RemoveAdjective()
+
 Last modified: Sun May 19 20:22:24 1996 by Wargon
diff --git a/doc/props/P_AERIAL_HELPERS b/doc/props/P_AERIAL_HELPERS
index 2606884..781510c 100644
--- a/doc/props/P_AERIAL_HELPERS
+++ b/doc/props/P_AERIAL_HELPERS
@@ -1,45 +1,63 @@
+
 P_AERIAL_HELPERS
+****************
 
-NAME:
-     P_AERIAL_HELPERS "lib_p_aerial_helpers"
 
-DEFINIERT IN:
-     <living/helpers.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
-     zu ermitteln, die fuer die Unterstuetzung beim Fliegen/Segeln bei diesem 
-     Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
-     Form zurueckgeliefert:
-     ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
-     Eine Erlaeuterung dazu findet sich in der Dokumentation zu 
-     RegisterHelperObject().
+   P_AERIAL_HELPERS "lib_p_aerial_helpers"
 
-BEMERKUNGEN:
-     Diese Property kann nur abgefragt werden.
-     Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche 
-     Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
 
-BEISPIEL:
-     Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das 
-     beim Fliegen hilft, sucht man alle Objekte aus dem Mapping heraus, die
-     einen Wert >0 eingetragen haben und prueft deren Anzahl:
+DEFINIERT IN
+============
 
-     mapping aerial = this_player()->QueryProp(P_AERIAL_HELPERS);
-     object* helpers = filter( aerial, function int (object h) {
-                         return (aerial[h]>0); });
-     if ( sizeof(helpers) ) {
-       tell_object(this_player(), "Du erhebst Dich mit Hilfe "+
-         helpers[0]->name(WESSEN,1)+" elegant in die Luefte.\n");
-     }
-     else {
-       tell_object(this_player(), "Du hast nichts zum Fliegen bei Dir.\n");
-     }
+   <living/helpers.h>
 
-SIEHE AUCH:
-     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
-     Properties:  P_HELPER_OBJECTS, P_AQUATIC_HELPERS
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
+   zu ermitteln, die fuer die Unterstuetzung beim Fliegen/Segeln bei diesem
+   Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
+   Form zurueckgeliefert:
+   ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
+   Eine Erlaeuterung dazu findet sich in der Dokumentation zu
+   RegisterHelperObject().
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property kann nur abgefragt werden.
+   Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche
+   Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
+
+
+BEISPIEL
+========
+
+   Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das
+   beim Fliegen hilft, sucht man alle Objekte aus dem Mapping heraus, die
+   einen Wert >0 eingetragen haben und prueft deren Anzahl:
+
+   mapping aerial = this_player()->QueryProp(P_AERIAL_HELPERS);
+   object* helpers = filter( aerial, function int (object h) {
+                       return (aerial[h]>0); });
+   if ( sizeof(helpers) ) {
+     tell_object(this_player(), "Du erhebst Dich mit Hilfe "+
+       helpers[0]->name(WESSEN,1)+" elegant in die Luefte.\n");
+   }
+   else {
+     tell_object(this_player(), "Du hast nichts zum Fliegen bei Dir.\n");
+   }
+
+
+SIEHE AUCH
+==========
+
+   Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
+   Properties:  P_HELPER_OBJECTS, P_AQUATIC_HELPERS
+
 12.03.2016, Arathorn
-
diff --git a/doc/props/P_AGE b/doc/props/P_AGE
index ad6388a..e35473c 100644
--- a/doc/props/P_AGE
+++ b/doc/props/P_AGE
@@ -1,8 +1,21 @@
-NAME:
-    P_AGE                         "age"                         
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_AGE
+*****
 
-BESCHREIBUNG:
-     Alter des Spielers in Heart-Beats (1 HB == 2 Sekunden)
+
+NAME
+====
+
+   P_AGE                         "age"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Alter des Spielers in Heart-Beats (1 HB == 2 Sekunden)
diff --git a/doc/props/P_AGGRESSIVE b/doc/props/P_AGGRESSIVE
index b10d97e..5184687 100644
--- a/doc/props/P_AGGRESSIVE
+++ b/doc/props/P_AGGRESSIVE
@@ -1,39 +1,55 @@
-NAME:
-    P_AGGRESSIVE                  "aggressive"                  
 
-DEFINIERT IN:
-    /sys/properties.h
+P_AGGRESSIVE
+************
 
-BESCHREIBUNG:
-	Gesetzt, wenn das Wesen von sich aus Angriffe startet.
 
-	Ueblicherweise nimmt man als Wert 1, man kann jedoch auch
-	einen kleineren Wert nehmen wenn es nur mit einer bestimmten
-	Wahrscheinlichkeit automatisch angreifen soll.
+NAME
+====
 
-	Der Wert von Spieler und Monster wird addiert, um zu entscheiden,
-	ob ein Spieler angegriffen werden soll,	man kann P_AGGRESSIVE
-	also auch bei Spielern setzen, so dass sie von allen Monstern
-	angegriffen werden.
+   P_AGGRESSIVE                  "aggressive"
 
-	Bei Monstern (und NUR bei diesen) kann man hier auch ein Mapping
-	angeben, das als Keys Namen von Properties des Spielers enthaelt
-	und als Values Mappings, in denen steht welcher Wert bei welchen
-	Wert fuer die Property genommen werden soll (Beispiele folgen).
-	Mit Key 0 kann man einen Default-Wert (sowohl in inneren Mappings
-	wie auch im aeusseren Mapping) festlegen. Default-Werte werden
-	genommen, falls keine anderen gesetzt sind, also Vorsicht mit
-	0-Eintraegen (Tip: 0.0 ist in LPC ungleich 0).
-	Bei mehreren Properties werden alle gesetzten Werte gemittelt.
 
-BEISPIELE:
-	SetProp(P_AGGRESSIVE,([P_RACE:(["Zwerg":1, "Elf":0.0, 0:0.5])]))
-	Zwerge werden immer automatisch angegriffen, Elfen nie und
-	alle anderen mit 50% Wahrscheinlichkeit.
-	Man beachte, dass hier 0.0 genommen werden musste anstelle von 0,
-	weil sonst Elfen auch 50% Wahrscheinlichkeit bekommen haetten.
+DEFINIERT IN
+============
 
-	SetProp(P_AGGRESSIVE,([P_RACE:(["Zwerg":0.3]),
-	                       P_GUILD:(["Chaos":0.7])]))
-	Zwerge werden mit 30% Wahrscheinlichkeit angegriffen,
-	Chaoten mit 70% und Zwerg-Chaoten mit 50%.
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt, wenn das Wesen von sich aus Angriffe startet.
+
+   Ueblicherweise nimmt man als Wert 1, man kann jedoch auch
+   einen kleineren Wert nehmen wenn es nur mit einer bestimmten
+   Wahrscheinlichkeit automatisch angreifen soll.
+
+   Der Wert von Spieler und Monster wird addiert, um zu entscheiden,
+   ob ein Spieler angegriffen werden soll, man kann P_AGGRESSIVE
+   also auch bei Spielern setzen, so dass sie von allen Monstern
+   angegriffen werden.
+
+   Bei Monstern (und NUR bei diesen) kann man hier auch ein Mapping
+   angeben, das als Keys Namen von Properties des Spielers enthaelt
+   und als Values Mappings, in denen steht welcher Wert bei welchen
+   Wert fuer die Property genommen werden soll (Beispiele folgen).
+   Mit Key 0 kann man einen Default-Wert (sowohl in inneren Mappings
+   wie auch im aeusseren Mapping) festlegen. Default-Werte werden
+   genommen, falls keine anderen gesetzt sind, also Vorsicht mit
+   0-Eintraegen (Tip: 0.0 ist in LPC ungleich 0).
+   Bei mehreren Properties werden alle gesetzten Werte gemittelt.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_AGGRESSIVE,([P_RACE:(["Zwerg":1, "Elf":0.0, 0:0.5])]))
+   Zwerge werden immer automatisch angegriffen, Elfen nie und
+   alle anderen mit 50% Wahrscheinlichkeit.
+   Man beachte, dass hier 0.0 genommen werden musste anstelle von 0,
+   weil sonst Elfen auch 50% Wahrscheinlichkeit bekommen haetten.
+
+   SetProp(P_AGGRESSIVE,([P_RACE:(["Zwerg":0.3]),
+                          P_GUILD:(["Chaos":0.7])]))
+   Zwerge werden mit 30% Wahrscheinlichkeit angegriffen,
+   Chaoten mit 70% und Zwerg-Chaoten mit 50%.
diff --git a/doc/props/P_ALCOHOL b/doc/props/P_ALCOHOL
index 63005b7..d827a94 100644
--- a/doc/props/P_ALCOHOL
+++ b/doc/props/P_ALCOHOL
@@ -1,22 +1,36 @@
-NAME:
-     P_ALCOHOL			"alcohol"
 
-DEFINIERT IN:
-     /sys/living/life.h
+P_ALCOHOL
+*********
 
-BESCHREIBUNG:
 
-     - Lebewesen
-       Numerischer Wert fuer den Grad der Betrunkenheit eines Lebewesens.
-       Der maximale Wert steht in P_MAX_ALCOHOL.
+NAME
+====
 
-     - Speisen/Kneipen
-       Numerischer Wert fuer den Grad, den eine Portion der Speise den
-       Konsumenten betrunken macht
+   P_ALCOHOL                  "alcohol"
 
-SIEHE AUCH:
-	P_MAX_ALCOHOL, P_ALCOHOL_DELAY, consume,
-	P_FOOD, P_DRINK, wiz/food, 
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   - Lebewesen
+     Numerischer Wert fuer den Grad der Betrunkenheit eines Lebewesens.
+     Der maximale Wert steht in P_MAX_ALCOHOL.
+
+   - Speisen/Kneipen
+     Numerischer Wert fuer den Grad, den eine Portion der Speise den
+     Konsumenten betrunken macht
+
+
+SIEHE AUCH
+==========
+
+   P_MAX_ALCOHOL, P_ALCOHOL_DELAY, consume,
+   P_FOOD, P_DRINK, wiz/food,
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_ALCOHOL_DELAY b/doc/props/P_ALCOHOL_DELAY
index 4c6d2c1..6ea0513 100644
--- a/doc/props/P_ALCOHOL_DELAY
+++ b/doc/props/P_ALCOHOL_DELAY
@@ -1,10 +1,23 @@
-NAME:
-    P_ALCOHOL_DELAY                 "alcohol_delay"                     
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_ALCOHOL_DELAY
+***************
 
-BESCHREIBUNG:
-     Anzahl der heart_beats, bis P_ALCOHOL um einen Punkt sinkt.
-     Aenderungen dieser Property in Spielern beduerfen der 
-     Genehmigung des EM fuer Balance.
+
+NAME
+====
+
+   P_ALCOHOL_DELAY                 "alcohol_delay"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der heart_beats, bis P_ALCOHOL um einen Punkt sinkt.
+   Aenderungen dieser Property in Spielern beduerfen der
+   Genehmigung des EM fuer Balance.
diff --git a/doc/props/P_ALC_FULL_MSG b/doc/props/P_ALC_FULL_MSG
index bd84a86..5df4b65 100644
--- a/doc/props/P_ALC_FULL_MSG
+++ b/doc/props/P_ALC_FULL_MSG
@@ -1,24 +1,45 @@
-NAME:
-     P_ALC_FULL_MSG                "std_food_alc_full_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_ALC_FULL_MSG
+**************
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn Alkohol konsumiert werden soll,
-     obwohl dieser nicht mehr Alkohol vertraegt.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "Soviel Alkohol vertraegst Du nicht mehr."
 
-SIEHE AUCH:
-     P_ALCOHOL, P_MAX_ALCOHOL, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_ALC_FULL_MSG                "std_food_alc_full_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn Alkohol konsumiert werden soll,
+   obwohl dieser nicht mehr Alkohol vertraegt.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "Soviel Alkohol vertraegst Du nicht mehr."
+
+
+SIEHE AUCH
+==========
+
+   P_ALCOHOL, P_MAX_ALCOHOL, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_ALIGN b/doc/props/P_ALIGN
index f1d3465..d4ca76c 100644
--- a/doc/props/P_ALIGN
+++ b/doc/props/P_ALIGN
@@ -1,17 +1,29 @@
-NAME:
-    P_ALIGN                       "align"                       
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_ALIGN
+*******
 
-BESCHREIBUNG:
-     Numerischer Wert fuer Gut- oder Boesheit des Wesens.
 
-     Kann Werte von -1000 (Boese wie der Teufel hoechstpersoenlich)
-     bis +1000 (Jesus, bist Du's ?) annehmen.
+NAME
+====
 
-     Werte ausserhalb dieser Skala werden zwar teilweise verwendet,
-     das Setzen derselben sollte jedoch UNBEDINGT unterbleiben.
+   P_ALIGN                       "align"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert fuer Gut- oder Boesheit des Wesens.
+
+   Kann Werte von -1000 (Boese wie der Teufel hoechstpersoenlich)
+   bis +1000 (Jesus, bist Du's ?) annehmen.
+
+   Werte ausserhalb dieser Skala werden zwar teilweise verwendet,
+   das Setzen derselben sollte jedoch UNBEDINGT unterbleiben.
+
 Last modified: Sat Jul 12 17:00:00 by Mandragon
diff --git a/doc/props/P_ALLOWED_SHADOW b/doc/props/P_ALLOWED_SHADOW
index 39482fd..5d849b7 100644
--- a/doc/props/P_ALLOWED_SHADOW
+++ b/doc/props/P_ALLOWED_SHADOW
@@ -1,24 +1,38 @@
-NAME:
-    P_ALLOWED_SHADOW              "allowed_shadow"
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_ALLOWED_SHADOW
+****************
 
-BESCHREIBUNG:
 
-     Normalerweise koennen nur Shadows an Spieler gebunden werden, die in 
-     /std/player/shadows/ liegen. 
-     
-     Zu Testzwecken kann in dieser Property der Pfad eines Shadows eingetragen
-     werden. Damit wird die oben beschriebene Regel fuer diesen Spieler und 
-     diesen Shadow ausser Kraft gesetzt.
+NAME
+====
 
-BEMERKUNG: 
+   P_ALLOWED_SHADOW              "allowed_shadow"
 
-     Der Spieler muss ein Testspieler sein. Ansonsten wird diese Property
-     ignoriert.
 
-     Die Property ist secured gesetzt. Das heisst, nur EM+ koennen
-     diese Property setzen und loeschen.
-------------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Normalerweise koennen nur Shadows an Spieler gebunden werden, die in
+   /std/player/shadows/ liegen.
+
+
+
+   Zu Testzwecken kann in dieser Property der Pfad eines Shadows eingetragen
+   werden. Damit wird die oben beschriebene Regel fuer diesen Spieler und
+   diesen Shadow ausser Kraft gesetzt.
+
+BEMERKUNG:
+
+   Der Spieler muss ein Testspieler sein. Ansonsten wird diese
+   Property ignoriert.
+
+   Die Property ist secured gesetzt. Das heisst, nur EM+ koennen diese
+   Property setzen und loeschen.
+
 Last modified: Sun Mar 21 00:27:46 2004 by Vanion
diff --git a/doc/props/P_AMMUNITION b/doc/props/P_AMMUNITION
index f8903af..cbe7f56 100644
--- a/doc/props/P_AMMUNITION
+++ b/doc/props/P_AMMUNITION
@@ -1,42 +1,62 @@
+
 P_AMMUNITION
+************
 
-NAME:
-    P_AMMUNITION     "munition"
 
-DEFINIERT IN:
-    <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-    Enthaelt die fuer eine Waffe gueltige Munition als String. Die
-    Munition muss diesen String als ID besitzen.
+   P_AMMUNITION     "munition"
 
-    Fuer die Munitionsobjekte gilt:
-    * es kann ein Skill am Spieler definiert werden, dieser wirkt dann
-      zusaetzlich zum generellen SK_SHOOT-Skill.
-    * sie koennen eine HitFunc besitzten, die beim Schuss abgefragt wird
 
-BEMERKUNGEN:
-    Bitte das #define MUN_MISC(x) benutzen. Munition sollte auch immer
-    in Deutsch und Plural angegeben werden, da P_AMMUNITION direkt
-    fuer Ausgaben an den Spieler ausgewertet wird.
+DEFINIERT IN
+============
 
-    Momentan sind vier Munitionsarten in der combat.h vordefiniert:
-    MUN_ARROW, MUN_STONE, MUN_BOLT, MUN_MISC
+   <combat.h>
 
-BEISPIELE:
-    // fuer ein kleines Blasrohr im Blasrohr
-    SetProp(P_AMMUNITION, MUN_MISC("Erbsen"));
 
-    // Entsprechend in der Munition:
-    AddId(MUN_MISC("Erbsen"));
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-    Generell:  P_SHOOTING_WC, P_STRETCH_TIME
-    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
-    Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
-    Waffen:    P_WEAPON_TYPE, P_WC, P_EQUIP_TIME, P_NR_HANDS
-    Kampf:     Attack(L), Defend(L), P_DISABLE_ATTACK, P_ATTACK_BUSY
-    Team:      PresentPosition(L)
-    Sonstiges: fernwaffen
+   Enthaelt die fuer eine Waffe gueltige Munition als String. Die
+   Munition muss diesen String als ID besitzen.
 
-29.Jul 2014 Gloinson
\ No newline at end of file
+   Fuer die Munitionsobjekte gilt:
+   * es kann ein Skill am Spieler definiert werden, dieser wirkt dann
+     zusaetzlich zum generellen SK_SHOOT-Skill.
+   * sie koennen eine HitFunc besitzten, die beim Schuss abgefragt wird
+
+
+BEMERKUNGEN
+===========
+
+   Bitte das #define MUN_MISC(x) benutzen. Munition sollte auch immer
+   in Deutsch und Plural angegeben werden, da P_AMMUNITION direkt
+   fuer Ausgaben an den Spieler ausgewertet wird.
+
+   Momentan sind vier Munitionsarten in der combat.h vordefiniert:
+   MUN_ARROW, MUN_STONE, MUN_BOLT, MUN_MISC
+
+
+BEISPIELE
+=========
+
+   // fuer ein kleines Blasrohr im Blasrohr
+   SetProp(P_AMMUNITION, MUN_MISC("Erbsen"));
+
+   // Entsprechend in der Munition:
+   AddId(MUN_MISC("Erbsen"));
+
+
+SIEHE AUCH
+==========
+
+   Generell:  P_SHOOTING_WC, P_STRETCH_TIME
+   Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+   Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
+   Waffen:    P_WEAPON_TYPE, P_WC, P_EQUIP_TIME, P_NR_HANDS
+   Kampf:     Attack(L), Defend(L), P_DISABLE_ATTACK, P_ATTACK_BUSY
+   Team:      PresentPosition(L)
+   Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
diff --git a/doc/props/P_AMOUNT b/doc/props/P_AMOUNT
index a44e45a..5c0e51a 100644
--- a/doc/props/P_AMOUNT
+++ b/doc/props/P_AMOUNT
@@ -1,8 +1,21 @@
-NAME:
-    P_AMOUNT                      "amount"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_AMOUNT
+********
 
-BESCHREIBUNG:
-     Anzahl der Objekte, fuer die das Objekt steht.
+
+NAME
+====
+
+   P_AMOUNT                      "amount"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der Objekte, fuer die das Objekt steht.
diff --git a/doc/props/P_AQUATIC_HELPERS b/doc/props/P_AQUATIC_HELPERS
index 33a07ab..8429a41 100644
--- a/doc/props/P_AQUATIC_HELPERS
+++ b/doc/props/P_AQUATIC_HELPERS
@@ -1,46 +1,64 @@
+
 P_AQUATIC_HELPERS
+*****************
 
-NAME:
-     P_AQUATIC_HELPERS "lib_p_aquatic_helpers"
 
-DEFINIERT IN:
-     <living/helpers.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
-     zu ermitteln, die fuer die Unterstuetzung beim Tauchen bei diesem 
-     Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
-     Form zurueckgeliefert:
-     ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
-     Eine Erlaeuterung dazu findet sich in der Dokumentation zu 
-     RegisterHelperObject().
+   P_AQUATIC_HELPERS "lib_p_aquatic_helpers"
 
-BEMERKUNGEN:
-     Diese Property kann nur abgefragt werden.
-     Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche 
-     Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
 
-BEISPIEL:
-     Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das 
-     beim Tauchen hilft, sucht man alle Objekte aus dem Mapping heraus, die
-     einen Wert >0 eingetragen haben und prueft deren Anzahl:
+DEFINIERT IN
+============
 
-     mapping aquatic = this_player()->QueryProp(P_AQUATIC_HELPERS);
-     object* helpers = filter( aquatic, function int (object h) {
-                         return (aquatic[h]>0); });
-     if ( sizeof(helpers) ) {
-       tell_object(this_player(), "Du stuerzt Dich in die Fluten und "
-         "stellst ueberrascht fest, dass Du mit Hilfe "+
-         helpers[0]->name(WESSEN,1)+" sogar unter Wasser atmen kannst!\n");
-     }
-     else {
-       tell_object(this_player(), "Du hast nichts zum Tauchen bei Dir.\n");
-     }
+   <living/helpers.h>
 
-SIEHE AUCH:
-     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
-     Properties:  P_HELPER_OBJECTS, P_AERIAL_HELPERS
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
+   zu ermitteln, die fuer die Unterstuetzung beim Tauchen bei diesem
+   Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
+   Form zurueckgeliefert:
+   ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
+   Eine Erlaeuterung dazu findet sich in der Dokumentation zu
+   RegisterHelperObject().
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property kann nur abgefragt werden.
+   Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche
+   Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
+
+
+BEISPIEL
+========
+
+   Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das
+   beim Tauchen hilft, sucht man alle Objekte aus dem Mapping heraus, die
+   einen Wert >0 eingetragen haben und prueft deren Anzahl:
+
+   mapping aquatic = this_player()->QueryProp(P_AQUATIC_HELPERS);
+   object* helpers = filter( aquatic, function int (object h) {
+                       return (aquatic[h]>0); });
+   if ( sizeof(helpers) ) {
+     tell_object(this_player(), "Du stuerzt Dich in die Fluten und "
+       "stellst ueberrascht fest, dass Du mit Hilfe "+
+       helpers[0]->name(WESSEN,1)+" sogar unter Wasser atmen kannst!\n");
+   }
+   else {
+     tell_object(this_player(), "Du hast nichts zum Tauchen bei Dir.\n");
+   }
+
+
+SIEHE AUCH
+==========
+
+   Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
+   Properties:  P_HELPER_OBJECTS, P_AERIAL_HELPERS
+
 06.04.2016, Arathorn
-
diff --git a/doc/props/P_ARMOURS b/doc/props/P_ARMOURS
index 3156bf6..e0d6a0c 100644
--- a/doc/props/P_ARMOURS
+++ b/doc/props/P_ARMOURS
@@ -1,25 +1,41 @@
+
 P_ARMOURS
+*********
 
-NAME:
-     P_ARMOURS                     "armours"
 
-DEFINIERT IN:
-     <living/combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Array mit den getragenen Schutzbekleidungen des Lebewesen.
+   P_ARMOURS                     "armours"
 
-     Bitte nach Moeglichkeit davon absehen, diese Property zu beschreiben, da
-     es hierbei zu Inkonsistenzen kommen kann.
-     
-     Falls ihr die Ruestungen des Lebewesens, ggf. mit bestimten Kriterien,
-     ermitteln wollt, benutzt hierfuer bitte die Funktion FilterArmours()
-     statt selber ueber dieses Array zu laufen.
 
-SIEHE AUCH:
-     Verwandt:		QueryArmourByType(L), P_WEAPON, FilterClothing(), 
-                  FilterArmours()
-     Ruestungen:	P_AC, P_ARMOUR_TYPE, P_NR_HANDS
-     Sonstiges:		P_EQUIP_TIME, P_LAST_USE
+DEFINIERT IN
+============
+
+   <living/combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Array mit den getragenen Schutzbekleidungen des Lebewesen.
+
+   Bitte nach Moeglichkeit davon absehen, diese Property zu beschreiben, da
+   es hierbei zu Inkonsistenzen kommen kann.
+
+
+
+   Falls ihr die Ruestungen des Lebewesens, ggf. mit bestimten Kriterien,
+   ermitteln wollt, benutzt hierfuer bitte die Funktion FilterArmours()
+   statt selber ueber dieses Array zu laufen.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:          QueryArmourByType(L), P_WEAPON, FilterClothing(),
+                FilterArmours()
+   Ruestungen:        P_AC, P_ARMOUR_TYPE, P_NR_HANDS
+   Sonstiges:         P_EQUIP_TIME, P_LAST_USE
 
 14.03.2009, Zesstra
diff --git a/doc/props/P_ARMOUR_TYPE b/doc/props/P_ARMOUR_TYPE
index 35978f2..19e6812 100644
--- a/doc/props/P_ARMOUR_TYPE
+++ b/doc/props/P_ARMOUR_TYPE
@@ -1,46 +1,63 @@
+
 P_ARMOUR_TYPE
+*************
 
-NAME:
-     P_ARMOUR_TYPE "armour_type"
 
-DEFINIERT IN:
-     <armour.h>
+NAME
+====
 
-BESCHREIBUNG:
-     In dieser Property wird der Typ einer Ruestung festgehalten. Man sollte
-     hier nur die in <combat.h> definierten Konstanten verwenden:
+   P_ARMOUR_TYPE "armour_type"
 
-        AT_AMULET     Amulett
-        AT_ARMOUR     Ruestung
-        AT_BELT       Guertel
-        AT_BOOT       Schuhe
-        AT_CLOAK      Umhang
-        AT_GLOVE      Handschuhe
-        AT_HELMET     Helm
-        AT_QUIVER     Koecher
-        AT_RING       Ring
-        AT_SHIELD     Schild
-        AT_TROUSERS   Hosen
-        AT_MISC       Sonstiges
 
-     Der Ruestungstyp AT_MISC ist schnoedem Tand und anderem nutzlosen
-     Kram vorbehalten. Auf keinen Fall darf eine AT_MISC-Ruestung ueber
-     eine AC > 0 verfuegen noch irgendwie kampfrelevante Bedeutung be-
-     sitzen. Ruestungen des Typs AT_MISC, die KEINE DefendFunc benoetigen,
-     muessen mittels /std/clothing als einfaches Kleidungsstueck realisiert
-     werden.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     Die P_AC wird bei AT_MISC-Ruestungen gar nicht erst ausgewertet.
-     DefendFuncs werden zwar ausgewertet, aber bitte ueberlegt euch gut, ob
-     ihr sie braucht (Rechenzeit im Kampf ist kritisch!) und ob sie seitens 
-     der Balance in eurem Fall erlaubt sind.
+   <armour.h>
 
-SIEHE AUCH:
-     Verwandt:          QueryArmourByType(L), P_WEAPON
-     Ruestungen:        P_AC, P_NR_HANDS (Schilde)
-     Sonstiges:         P_EQUIP_TIME, P_LAST_USE
-     Code:              /std/armour.c, /std/clothing.c
-     Gildenergaenzung:  P_GLOVE_FINGERLESS
+
+BESCHREIBUNG
+============
+
+   In dieser Property wird der Typ einer Ruestung festgehalten. Man sollte
+   hier nur die in <combat.h> definierten Konstanten verwenden:
+
+      AT_AMULET     Amulett
+      AT_ARMOUR     Ruestung
+      AT_BELT       Guertel
+      AT_BOOT       Schuhe
+      AT_CLOAK      Umhang
+      AT_GLOVE      Handschuhe
+      AT_HELMET     Helm
+      AT_QUIVER     Koecher
+      AT_RING       Ring
+      AT_SHIELD     Schild
+      AT_TROUSERS   Hosen
+      AT_MISC       Sonstiges
+
+   Der Ruestungstyp AT_MISC ist schnoedem Tand und anderem nutzlosen
+   Kram vorbehalten. Auf keinen Fall darf eine AT_MISC-Ruestung ueber
+   eine AC > 0 verfuegen noch irgendwie kampfrelevante Bedeutung be-
+   sitzen. Ruestungen des Typs AT_MISC, die KEINE DefendFunc benoetigen,
+   muessen mittels /std/clothing als einfaches Kleidungsstueck realisiert
+   werden.
+
+
+BEMERKUNGEN
+===========
+
+   Die P_AC wird bei AT_MISC-Ruestungen gar nicht erst ausgewertet.
+   DefendFuncs werden zwar ausgewertet, aber bitte ueberlegt euch gut, ob
+   ihr sie braucht (Rechenzeit im Kampf ist kritisch!) und ob sie seitens
+   der Balance in eurem Fall erlaubt sind.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:          QueryArmourByType(L), P_WEAPON
+   Ruestungen:        P_AC, P_NR_HANDS (Schilde)
+   Sonstiges:         P_EQUIP_TIME, P_LAST_USE
+   Code:              /std/armour.c, /std/clothing.c
+   Gildenergaenzung:  P_GLOVE_FINGERLESS
 
 27. Mai 2015, Arathorn
diff --git a/doc/props/P_ARRIVEMSG b/doc/props/P_ARRIVEMSG
index 02d5759..cdafdaa 100644
--- a/doc/props/P_ARRIVEMSG
+++ b/doc/props/P_ARRIVEMSG
@@ -1,8 +1,21 @@
-NAME:
-    P_ARRIVEMSG                   "arrivemsg"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_ARRIVEMSG
+***********
 
-BESCHREIBUNG:
-     Meldung, wenn der Transporter anlegt.
+
+NAME
+====
+
+   P_ARRIVEMSG                   "arrivemsg"
+
+
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Meldung, wenn der Transporter anlegt.
diff --git a/doc/props/P_ARTICLE b/doc/props/P_ARTICLE
index 1517865..2bf2c54 100644
--- a/doc/props/P_ARTICLE
+++ b/doc/props/P_ARTICLE
@@ -1,15 +1,28 @@
-NAME:
-    P_ARTICLE                     "article"                     
 
-DEFINIERT IN:
-    /sys/thing/language.h
+P_ARTICLE
+*********
 
-BESCHREIBUNG:
-     Gibt an, ob in der Beschreibung ein Artikel ausgegeben werden soll
-     oder nicht.
 
-     Wenn ein Artikel angegeben werden soll, so wird 1 gesetzt, sonst 0.
-     Diese Property ist aus historischen Gruenden auf 1 voreingestellt
-     und intern invertiert. (d.h., beim Auslesen per Query kommt als 
-     Ergebnis genau das falsche heraus). Bitte beachtet das bei Set- bzw.
-     Query-Funktionen.
\ No newline at end of file
+NAME
+====
+
+   P_ARTICLE                     "article"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/language.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt an, ob in der Beschreibung ein Artikel ausgegeben werden soll
+   oder nicht.
+
+   Wenn ein Artikel angegeben werden soll, so wird 1 gesetzt, sonst 0.
+   Diese Property ist aus historischen Gruenden auf 1 voreingestellt
+   und intern invertiert. (d.h., beim Auslesen per Query kommt als
+   Ergebnis genau das falsche heraus). Bitte beachtet das bei Set- bzw.
+   Query-Funktionen.
diff --git a/doc/props/P_ATTACK_BUSY b/doc/props/P_ATTACK_BUSY
index b55dc5b..dfc8ba6 100644
--- a/doc/props/P_ATTACK_BUSY
+++ b/doc/props/P_ATTACK_BUSY
@@ -1,44 +1,67 @@
-NAME:
-    P_ATTACK_BUSY                 "attack_busy"                 
 
-DEFINIERT IN:
-    /sys/living/combat.h
+P_ATTACK_BUSY
+*************
 
-BESCHREIBUNG:
-    Ueber diese Property kann festgestellt werden, ob ein Spieler noch 
-    Spezialwaffen (zB Flammenkugel) einsetzen kann.
-    
-    Ist der Wert bei Abfrage ungleich 0, dann darf der Spieler in dieser
-    Runde keine Aktion mehr durchfuehren. Mit SetProp(P_ATTACK_BUSY, 1)
-    wird eine Aktion verbraucht.
 
-    Intern wird relativ fein gerechnet, ein SetProp(P_ATTACK_BUSY, x)
-    wird in das Abziehen von x*100 Punkten umgerechnet. Der Wert freier
-    Aktionen pro Runde berechnet sich wie folgt:
-    
-    Spieler: 100 + QuerySkillAttribute(SA_SPEED)
-    Seher:   Spieler + 200 + QueryProp(P_LEVEL)
+NAME
+====
 
-    Das Maximum liegt bei 500.
-    Damit betraegt die Anzahl der moeglichen Aktionen pro Runde: Wert/100,
-    also maximal 5 Aktionen pro Runde.
+   P_ATTACK_BUSY                 "attack_busy"
 
-    Zaubersprueche zaehlen im Normalfall auch als eine Aktion.
 
-BEMERKUNGEN:
-    Benutzt man P_ATTACK_BUSY fuer eine sich nicht sofort verbrauchende
-    Sache, kann ein Seher dieses Objekt im Normalfall dreimal pro Runde
-    benutzen. Wenn ungewollt, muss das ueber einen Zeitmarker selbst
-    verhindert werden.
-    
-BEISPIELE:
-    (Code eines Objektes ist in
-     /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c)
-    // einfacher Test auf ATTACK_BUSY und anschliessendes Setzen
-    if (this_player()->QueryProp(P_ATTACK_BUSY)) {
-      write("Du hast dafuer momentan einfach nicht mehr die Puste.\n");
-      return 1;
-    }
-    this_player()->SetProp(P_ATTACK_BUSY, 1);
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Ueber diese Property kann festgestellt werden, ob ein Spieler noch
+   Spezialwaffen (zB Flammenkugel) einsetzen kann.
+
+
+
+   Ist der Wert bei Abfrage ungleich 0, dann darf der Spieler in dieser
+   Runde keine Aktion mehr durchfuehren. Mit SetProp(P_ATTACK_BUSY, 1)
+   wird eine Aktion verbraucht.
+
+   Intern wird relativ fein gerechnet, ein SetProp(P_ATTACK_BUSY, x)
+   wird in das Abziehen von x*100 Punkten umgerechnet. Der Wert freier
+   Aktionen pro Runde berechnet sich wie folgt:
+
+
+
+   Spieler: 100 + QuerySkillAttribute(SA_SPEED)
+   Seher:   Spieler + 200 + QueryProp(P_LEVEL)
+
+   Das Maximum liegt bei 500.
+   Damit betraegt die Anzahl der moeglichen Aktionen pro Runde: Wert/100,
+   also maximal 5 Aktionen pro Runde.
+
+   Zaubersprueche zaehlen im Normalfall auch als eine Aktion.
+
+
+BEMERKUNGEN
+===========
+
+   Benutzt man P_ATTACK_BUSY fuer eine sich nicht sofort verbrauchende
+   Sache, kann ein Seher dieses Objekt im Normalfall dreimal pro Runde
+   benutzen. Wenn ungewollt, muss das ueber einen Zeitmarker selbst
+   verhindert werden.
+
+
+BEISPIELE
+=========
+
+   (Code eines Objektes ist in
+    /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c)
+   // einfacher Test auf ATTACK_BUSY und anschliessendes Setzen
+   if (this_player()->QueryProp(P_ATTACK_BUSY)) {
+     write("Du hast dafuer momentan einfach nicht mehr die Puste.\n");
+     return 1;
+   }
+   this_player()->SetProp(P_ATTACK_BUSY, 1);
 
 7. Mar 2011 Gloinson
diff --git a/doc/props/P_ATTRIBUTES b/doc/props/P_ATTRIBUTES
index 29da911..ed5dd1c 100644
--- a/doc/props/P_ATTRIBUTES
+++ b/doc/props/P_ATTRIBUTES
@@ -1,58 +1,79 @@
-NAME:
-	P_ATTRIBUTES			"attributes"
 
-DEFINIERT IN:
-	/sys/living/attributes.h
+P_ATTRIBUTES
+************
 
-BESCHREIBUNG:
-	Diese Property enthaelt ein Mapping mit den Attributen des
-	Lebewesens. Die Schluessel kennzeichnen hierbei das jeweilige
-	Attribut. Die verschiedenen Standardattribute findet man in
-	/sys/living/attributes.h, welche derzeit folgende Moeglichkeiten
-	bieten:	- A_STR (Kraft)
-		- A_INT (Intelligenz)
-		- A_DEX (Geschick)
-		- A_CON (Konstitution)
-	Sie werden automatisch an verschiedenen Stellen in der MUDLib
-	ausgewertet, zum Beispiel bestimmt A_INT die maximal moeglichen
-	Konzentrationspunkte und A_CON die maximal moeglichen Lebenspunkte.
 
-BEMERKUNGEN:
-        Keine echte Property, _query_attributes() und _set_attributes() sind 
-        in /std/living/attributes.c implementiert.
+NAME
+====
 
-	Es bietet sich an, zum Erfragen der Attributwerte die Funktion
-	QueryAttribute() zu nutzen, da es auch moegliche Offsets gibt,
-	so beispielsweise ueber die Properties P_ATTRIBUTES_OFFSETS bzw.
-	P_ATTRIBUTES_MODIFIER im Lebewesen selbst, oder auch ueber
-	P_X_ATTR_MOD bzw. P_M_ATTR_MOD in Objekten im Lebewesen.
-	Kurzfristige zeit- oder objektgebundene Attributveraenderungen
-	koennen ueber die Property P_TIMED_ATTR_MOD realisiert werden.
+   P_ATTRIBUTES                    "attributes"
 
-	Es gibt auch zahlreiche andere Dienstfunktionen fuer diesen sehr
-	balancekritischen Bereich, siehe unten.
 
-BEISPIEL:
-	Ein moegliches Ergebnis fuer einen frischen Level 1 Spieler waere:
-	  QueryProp(P_ATTRIBUTES);
-	  Ergebnis: (["int":1,"con":1,"str":1,"dex":1])
-	Hinzu kommen eventuell moegliche Rassenboni, die mittels
-	P_ATTRIBUTE_OFFSETS realisiert werden, Zwerge sind beispielsweise
-	recht stark:
-	  QueryProp(P_ATTRIBUTES_OFFSETS);
-	  Ergebnis: (["int":1,"con":1,"str":1,"dex":3])
-	Jetzt bekaeme man (sofern keine weiteren Offsets realisiert sind)
-	mittels QueryAttribute() insgesamt:
-	  QueryAttribute(A_DEX);
-	  Ergebnis: 4
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-	QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
-	SetAttribute(), SetRealAttribute(), UpdateAttributes(),
-	SetTimedAttrModifier(), QueryTimedAttrModifier(),
-	DeleteTimedAttrModifier(),
-	P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,P_TIMED_ATTR_MOD,
-	P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+   /sys/living/attributes.h
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt ein Mapping mit den Attributen des
+   Lebewesens. Die Schluessel kennzeichnen hierbei das jeweilige
+   Attribut. Die verschiedenen Standardattribute findet man in
+   /sys/living/attributes.h, welche derzeit folgende Moeglichkeiten
+   bieten: - A_STR (Kraft)
+           - A_INT (Intelligenz)
+           - A_DEX (Geschick)
+           - A_CON (Konstitution)
+   Sie werden automatisch an verschiedenen Stellen in der MUDLib
+   ausgewertet, zum Beispiel bestimmt A_INT die maximal moeglichen
+   Konzentrationspunkte und A_CON die maximal moeglichen Lebenspunkte.
+
+
+BEMERKUNGEN
+===========
+
+   Keine echte Property, _query_attributes() und _set_attributes() sind
+   in /std/living/attributes.c implementiert.
+
+   Es bietet sich an, zum Erfragen der Attributwerte die Funktion
+   QueryAttribute() zu nutzen, da es auch moegliche Offsets gibt,
+   so beispielsweise ueber die Properties P_ATTRIBUTES_OFFSETS bzw.
+   P_ATTRIBUTES_MODIFIER im Lebewesen selbst, oder auch ueber
+   P_X_ATTR_MOD bzw. P_M_ATTR_MOD in Objekten im Lebewesen.
+   Kurzfristige zeit- oder objektgebundene Attributveraenderungen
+   koennen ueber die Property P_TIMED_ATTR_MOD realisiert werden.
+
+   Es gibt auch zahlreiche andere Dienstfunktionen fuer diesen sehr
+   balancekritischen Bereich, siehe unten.
+
+
+BEISPIEL
+========
+
+   Ein moegliches Ergebnis fuer einen frischen Level 1 Spieler waere:
+     QueryProp(P_ATTRIBUTES);
+     Ergebnis: (["int":1,"con":1,"str":1,"dex":1])
+   Hinzu kommen eventuell moegliche Rassenboni, die mittels
+   P_ATTRIBUTE_OFFSETS realisiert werden, Zwerge sind beispielsweise
+   recht stark:
+     QueryProp(P_ATTRIBUTES_OFFSETS);
+     Ergebnis: (["int":1,"con":1,"str":1,"dex":3])
+   Jetzt bekaeme man (sofern keine weiteren Offsets realisiert sind)
+   mittels QueryAttribute() insgesamt:
+     QueryAttribute(A_DEX);
+     Ergebnis: 4
+
+
+SIEHE AUCH
+==========
+
+   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+   SetTimedAttrModifier(), QueryTimedAttrModifier(),
+   DeleteTimedAttrModifier(),
+   P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,P_TIMED_ATTR_MOD,
+   P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
 Last modified: Tue Jul 27 20:00:20 2004 by Muadib
diff --git a/doc/props/P_ATTRIBUTES_MODIFIER b/doc/props/P_ATTRIBUTES_MODIFIER
index f5ba513..ab9f24d 100644
--- a/doc/props/P_ATTRIBUTES_MODIFIER
+++ b/doc/props/P_ATTRIBUTES_MODIFIER
@@ -1,56 +1,78 @@
-NAME:
-    P_ATTRIBUTES_MODIFIER         "attributes_modifier"
 
-DEFINIERT IN:
-    /sys/living/attributes.h
+P_ATTRIBUTES_MODIFIER
+*********************
 
-BESCHREIBUNG:
-    In dieser Property werden Attribut-Modifikatoren gespeichert, die
-    laengere Zeit wirksam sein sollen, tlw. auch ueber einen Reboot
-    hinweg.
-    Intern werden die Modifikatoren in einem Mapping der Form
 
-        ([ Setzer-Key : ([ A_xy : Wert, ... ]) , ... ])
+NAME
+====
 
-    gespeichert. Das Setzen folg hingegen in der Form
+   P_ATTRIBUTES_MODIFIER         "attributes_modifier"
 
-        spieler->SetProp(P_ATTRIBUTES_MODIFIER, ([ A_xy : Wert, ... ]));
-    oder
-        spieler->SetProp(P_ATTRIBUTES_MODIFIER, ({ Setzer-Key, ([ ... ]) }));
 
-    Bei der ersten Variante wird hierbei der Filename des setzenden Objektes
-    als Setzer-Key genommen.
-    Es koennen also durchaus von mehreren Objekten Modifier gesetzt werden.
-    Bekannte Modifier sind:
+DEFINIERT IN
+============
 
-        #death      Attribut-Abzug durch Todesfolgen      (Mudlib)
-        #drain      Statabzug durch NPCs                  (Paracelsus)
-        #frosch     Staerken-Abzug bei Froeschen          (Mudlib)
+   /sys/living/attributes.h
 
-BEMERKUNGEN:
-    Keine echte Property, _query_attributes_modifier() und
-    _set_attributes_modifier() sind in /std/living/attributes.c
-    implementiert
-    - SetProp/QueryProp nutzen!
-    - Wenn ein Modifier nicht mehr gebracht wird, nicht die Attributswerte auf
-      0 setzen, sondern den ganzen Eintrag! also:
-      SetProp(P_ATTRIBUTES_MODIFIER, ([]) );
-      oder: SetProp(P_ATTRIBUTES_MODIFIER, 0 ); 
-      aber nicht: SetProp(P_ATTRIBUTES_MODIFIER, ([A_STR:0]));
 
-BEISPIELE:
-    // ein Bonus ... 'ende'-fest (muss also per uid gesichert werden)
-    player->SetProp(P_ATTRIBUTES_MODIFIER,
-                    ({"g_klerus_segen", ([A_CON:5, A_INT:5])}));
-    ...
-    player->SetProp(P_ATTRIBUTES_MODIFIER, ({"g_klerus_segen", 0}));
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-	QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
-	SetAttribute(), SetRealAttribute(), UpdateAttributes(),
-	SetTimedAttrModifier(), QueryTimedAttrModifier(),
-	DeleteTimedAttrModifier(),
-	P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
-	P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
-----------------------------------------------------------------------------
+   In dieser Property werden Attribut-Modifikatoren gespeichert, die
+   laengere Zeit wirksam sein sollen, tlw. auch ueber einen Reboot
+   hinweg.
+   Intern werden die Modifikatoren in einem Mapping der Form
+
+       ([ Setzer-Key : ([ A_xy : Wert, ... ]) , ... ])
+
+   gespeichert. Das Setzen folg hingegen in der Form
+
+       spieler->SetProp(P_ATTRIBUTES_MODIFIER, ([ A_xy : Wert, ... ]));
+   oder
+       spieler->SetProp(P_ATTRIBUTES_MODIFIER, ({ Setzer-Key, ([ ... ]) }));
+
+   Bei der ersten Variante wird hierbei der Filename des setzenden Objektes
+   als Setzer-Key genommen.
+   Es koennen also durchaus von mehreren Objekten Modifier gesetzt werden.
+   Bekannte Modifier sind:
+
+       #death      Attribut-Abzug durch Todesfolgen      (Mudlib)
+       #drain      Statabzug durch NPCs                  (Paracelsus)
+       #frosch     Staerken-Abzug bei Froeschen          (Mudlib)
+
+
+BEMERKUNGEN
+===========
+
+   Keine echte Property, _query_attributes_modifier() und
+   _set_attributes_modifier() sind in /std/living/attributes.c
+   implementiert
+   - SetProp/QueryProp nutzen!
+   - Wenn ein Modifier nicht mehr gebracht wird, nicht die Attributswerte auf
+     0 setzen, sondern den ganzen Eintrag! also:
+     SetProp(P_ATTRIBUTES_MODIFIER, ([]) );
+     oder: SetProp(P_ATTRIBUTES_MODIFIER, 0 );
+     aber nicht: SetProp(P_ATTRIBUTES_MODIFIER, ([A_STR:0]));
+
+
+BEISPIELE
+=========
+
+   // ein Bonus ... 'ende'-fest (muss also per uid gesichert werden)
+   player->SetProp(P_ATTRIBUTES_MODIFIER,
+                   ({"g_klerus_segen", ([A_CON:5, A_INT:5])}));
+   ...
+   player->SetProp(P_ATTRIBUTES_MODIFIER, ({"g_klerus_segen", 0}));
+
+
+SIEHE AUCH
+==========
+
+   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+   SetTimedAttrModifier(), QueryTimedAttrModifier(),
+   DeleteTimedAttrModifier(),
+   P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
+   P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
 Last modified: Tue Jul 27 20:00:20 2004 by Muadib
diff --git a/doc/props/P_ATTRIBUTES_OFFSETS b/doc/props/P_ATTRIBUTES_OFFSETS
index 3ebe2b7..dfcbb8c 100644
--- a/doc/props/P_ATTRIBUTES_OFFSETS
+++ b/doc/props/P_ATTRIBUTES_OFFSETS
@@ -1,27 +1,46 @@
-NAME:
-	P_ATTRIBUTES_OFFSETS		"attributes_offsets"
 
-DEFINIERT IN:
-	/sys/living/attributes.h
+P_ATTRIBUTES_OFFSETS
+********************
 
-BESCHREIBUNG:
-	Diese Property enthaelt ein Mapping mit Offsets, die zu den
-	Attributen eine Lebewesens addiert werden. Diese koennen auch
-	negativ sein! Realisiert werden damit beispielsweise Rassenboni.
-	Es gibt noch weitere Moeglichkeiten, Attributoffsets anzugeben.
-	Fuer weiteres siehe P_ATTRIBUTES.
 
-BEMKERUNGEN:
-        Keine echte Property, _query_attributes_offsets() und 
-        _set_attributes_offsets() sind in /std/living/attributes.c 
-        implementiert.
+NAME
+====
 
-SIEHE AUCH:
-	QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
-	SetAttribute(), SetRealAttribute(), UpdateAttributes(),
-	SetTimedAttrModifier(), QueryTimedAttrModifier(),
-	DeleteTimedAttrModifier(),
-	P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
-	P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
-----------------------------------------------------------------------------
+   P_ATTRIBUTES_OFFSETS            "attributes_offsets"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/attributes.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt ein Mapping mit Offsets, die zu den
+   Attributen eine Lebewesens addiert werden. Diese koennen auch
+   negativ sein! Realisiert werden damit beispielsweise Rassenboni.
+   Es gibt noch weitere Moeglichkeiten, Attributoffsets anzugeben.
+   Fuer weiteres siehe P_ATTRIBUTES.
+
+
+BEMKERUNGEN
+===========
+
+   Keine echte Property, _query_attributes_offsets() und
+   _set_attributes_offsets() sind in /std/living/attributes.c
+   implementiert.
+
+
+SIEHE AUCH
+==========
+
+   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+   SetTimedAttrModifier(), QueryTimedAttrModifier(),
+   DeleteTimedAttrModifier(),
+   P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_TIMED_ATTR_MOD,
+   P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
 Last modified: Tue Jul 27 20:00:20 2004 by Muadib
diff --git a/doc/props/P_AUTH_INFO b/doc/props/P_AUTH_INFO
index 5ca65c5..953b519 100644
--- a/doc/props/P_AUTH_INFO
+++ b/doc/props/P_AUTH_INFO
@@ -1,8 +1,21 @@
-NAME:
-    P_AUTH_INFO                   "auth_info"                   
 
-DEFINIERT IN:
-    /sys/player.h
+P_AUTH_INFO
+***********
 
-BESCHREIBUNG:
-     Username des Spielers, wenn bei ihm ein AUTHD laeuft
+
+NAME
+====
+
+   P_AUTH_INFO                   "auth_info"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Username des Spielers, wenn bei ihm ein AUTHD laeuft
diff --git a/doc/props/P_AUTOLOAD b/doc/props/P_AUTOLOAD
index 6ea69c9..5e623bb 100644
--- a/doc/props/P_AUTOLOAD
+++ b/doc/props/P_AUTOLOAD
@@ -1,15 +1,31 @@
-NAME:
-    P_AUTOLOAD                    "autoload"                    
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_AUTOLOAD
+**********
 
-BESCHREIBUNG:
-     Mapping mit der Menge der Autoloadobjekte und den zugeh.
-     Properties.
 
-BEMERKUNGEN:
-     Funktioniert momentan nicht. Die Methode wurde entfernt. Doku bleibt
-     hier bis der Fall geklaert ist. (Stand 27.Aug 2006)
+NAME
+====
+
+   P_AUTOLOAD                    "autoload"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Mapping mit der Menge der Autoloadobjekte und den zugeh.
+   Properties.
+
+
+BEMERKUNGEN
+===========
+
+   Funktioniert momentan nicht. Die Methode wurde entfernt. Doku bleibt
+   hier bis der Fall geklaert ist. (Stand 27.Aug 2006)
 
 27.Aug 2006 Gloinson
diff --git a/doc/props/P_AUTOLOADOBJ b/doc/props/P_AUTOLOADOBJ
index 32b433d..3184fff 100644
--- a/doc/props/P_AUTOLOADOBJ
+++ b/doc/props/P_AUTOLOADOBJ
@@ -1,119 +1,141 @@
-NAME:
-    P_AUTOLOADOBJ                 "autoloadobj"
 
-DEFINIERT IN:
-    /sys/player/base.h
-
-BESCHREIBUNG:
-     Hiermit kann prinzipiell angegeben werden ob ein Objekt ueber das
-     Ausloggen eines Spielers (Reboot/ende) behalten werden soll.
-
-     Als Inhalt der Property koennen permanente Eigenschaften des Objektes
-     angegeben werden.
-     Beim Einloggen wird das Objekt neu erzeugt und P_AUTOLOADOBJ auf die
-     gespeicherten Werte gesetzt. Die Werte muessen allerdings selbst
-     verwaltet werden.
-
-     Bitte geht nicht davon aus, dass es waehrend des Setzens/Abfragens dieser
-     Prop einen this_player() oder ein this_interactive() geben muss.
-     Speziell ist this_interactive() nicht == /secure/login!
-     Ebenfalls muss das Objekt beim Setzen/Abfragen nicht in einem Spieler
-     sein.
-
-BEMERKUNGEN:
-     Autoloadobjekte werden beim Ausloggen nicht fallengelassen!
-
-BEISPIELE:
-     ## Variante 1: simples Objekt, bleibt einfach nur erhalten,
-     ##             Variablen werden nicht gesichert ##
-     void create() {
-      ...
-      SetProp(P_AUTOLOADOBJ,1);
-      ...
-     }
+P_AUTOLOADOBJ
+*************
 
 
-     ## Variante 2: Speicherung mehrerer Variablen ueber
-     ##             P_AUTOLOADOBJ (elegante Verwaltung)
+NAME
+====
 
-     // ein paar #defines fuer die Plaetze in der Speichervariablen
-     #define MY_AL_SHORT    0
-     #define MY_AL_ATTRM    1
-     #define MY_AL_OWNER    2
-     #define MY_AL_DESTRUCT 3
-
-     // die Variablen, die erhalten bleiben sollen
-     static object owner;
-     static int destruct_time;
-
-     // diese hier wird gerufen, wenn der Spieler gespeichert wird,
-     // wir packen also alle aktuellen Variablen in eine und geben die
-     // zum Speichern heraus ... wir nehmen hier ein Array (statt
-     // zB eines Mappings), weil das am wenigsten Platz braucht
-     static mixed* _query_autoloadobj() {
-      mixed *ret;
-      ret=allocate(4);
-      ret[MY_AL_SHORT] = QueryProp(P_SHORT);      // SHORT merken
-      ret[MY_AL_ATTRM] = QueryProp(P_M_ATTR_MOD); // einen Modifikator merken
-      ret[MY_AL_OWNER] = getuid(owner);           // ah, ein Besitzer!
-      ret[MY_AL_DESTRUCT]=destruct_time-time();   // und eine Lebensdauer!
-
-      return ret;
-
-      /*
-      // normalerweise wuerde man das einfach so schreiben:
-      return (({QueryProp(P_SHORT),
-                QueryProp(P_M_ATTR_MOD),
-                getuid(owner),
-                destruct_time-time()}));
-      */
-     }
-
-     // diese hier wird gerufen, wenn das Objekt neu im Spieler
-     // erzeugt wurde (Login), also packen wir das Speicherarray wieder
-     // aus und in alle entsprechenden Variablen
-     static mixed* _set_autoloadobj(mixed *new) {
-      // wenn das Format nicht mit dem oben uebereinstimmt ist was
-      // schiefgelaufen
-      if(pointerp(new) && !owner && sizeof(new)>4 &&
-         (owner=find_player(new[MY_AL_OWNER]))) {
-       // los, zuweisen!
-
-       SetProp(P_SHORT,      new[MY_AL_SHORT]);
-       SetProp(P_M_ATTR_MOD, new[MY_AL_ATTRM]);
-       destruct_time=        time()+new[MY_AL_DESTRUCT];
-
-       call_out(#'remove,new[3]);
-      } else call_out(#'remove,0);
-
-      return new;
-     }
+   P_AUTOLOADOBJ                 "autoloadobj"
 
 
-     ## Variante 3: und das gleiche mit Set/Querymethoden ##
-     // Prototypen fuer Set und Query-Methoden -> man Set
-     static mixed *my_query_autoloadobj();
-     static mixed *my_set_autoloadobj(mixed *new);
+DEFINIERT IN
+============
 
-     void create() {
-      // Binden der Methoden
-      Set(P_AUTOLOADOBJ, #'my_query_autoloadobj, F_QUERY_METHOD);
-      Set(P_AUTOLOADOBJ, #'my_set_autoloadobj, F_SET_METHOD);
+   /sys/player/base.h
 
-      // die werden nur von mir veraendert!
-      Set(P_AUTOLOADOBJ, PROTECTED, F_MODE_AS);
-      ...
-     }
 
-     static mixed *my_query_autoloadobj () {
-       // s.o.
-     }
+BESCHREIBUNG
+============
 
-     static mixed *my_set_autoloadobj (mixed *new) {
-       // s.o.
-     }
+   Hiermit kann prinzipiell angegeben werden ob ein Objekt ueber das
+   Ausloggen eines Spielers (Reboot/ende) behalten werden soll.
 
-SIEHE AUCH:
-     P_AUTOLOAD, SetProp
+   Als Inhalt der Property koennen permanente Eigenschaften des Objektes
+   angegeben werden.
+   Beim Einloggen wird das Objekt neu erzeugt und P_AUTOLOADOBJ auf die
+   gespeicherten Werte gesetzt. Die Werte muessen allerdings selbst
+   verwaltet werden.
+
+   Bitte geht nicht davon aus, dass es waehrend des Setzens/Abfragens dieser
+   Prop einen this_player() oder ein this_interactive() geben muss.
+   Speziell ist this_interactive() nicht == /secure/login!
+   Ebenfalls muss das Objekt beim Setzen/Abfragen nicht in einem Spieler
+   sein.
+
+
+BEMERKUNGEN
+===========
+
+   Autoloadobjekte werden beim Ausloggen nicht fallengelassen!
+
+
+BEISPIELE
+=========
+
+   ## Variante 1: simples Objekt, bleibt einfach nur erhalten,
+   ##             Variablen werden nicht gesichert ##
+   void create() {
+    ...
+    SetProp(P_AUTOLOADOBJ,1);
+    ...
+   }
+
+
+   ## Variante 2: Speicherung mehrerer Variablen ueber
+   ##             P_AUTOLOADOBJ (elegante Verwaltung)
+
+   // ein paar #defines fuer die Plaetze in der Speichervariablen
+   #define MY_AL_SHORT    0
+   #define MY_AL_ATTRM    1
+   #define MY_AL_OWNER    2
+   #define MY_AL_DESTRUCT 3
+
+   // die Variablen, die erhalten bleiben sollen
+   static object owner;
+   static int destruct_time;
+
+   // diese hier wird gerufen, wenn der Spieler gespeichert wird,
+   // wir packen also alle aktuellen Variablen in eine und geben die
+   // zum Speichern heraus ... wir nehmen hier ein Array (statt
+   // zB eines Mappings), weil das am wenigsten Platz braucht
+   static mixed* _query_autoloadobj() {
+    mixed *ret;
+    ret=allocate(4);
+    ret[MY_AL_SHORT] = QueryProp(P_SHORT);      // SHORT merken
+    ret[MY_AL_ATTRM] = QueryProp(P_M_ATTR_MOD); // einen Modifikator merken
+    ret[MY_AL_OWNER] = getuid(owner);           // ah, ein Besitzer!
+    ret[MY_AL_DESTRUCT]=destruct_time-time();   // und eine Lebensdauer!
+
+    return ret;
+
+    /*
+    // normalerweise wuerde man das einfach so schreiben:
+    return (({QueryProp(P_SHORT),
+              QueryProp(P_M_ATTR_MOD),
+              getuid(owner),
+              destruct_time-time()}));
+    */
+   }
+
+   // diese hier wird gerufen, wenn das Objekt neu im Spieler
+   // erzeugt wurde (Login), also packen wir das Speicherarray wieder
+   // aus und in alle entsprechenden Variablen
+   static mixed* _set_autoloadobj(mixed *new) {
+    // wenn das Format nicht mit dem oben uebereinstimmt ist was
+    // schiefgelaufen
+    if(pointerp(new) && !owner && sizeof(new)>4 &&
+       (owner=find_player(new[MY_AL_OWNER]))) {
+     // los, zuweisen!
+
+     SetProp(P_SHORT,      new[MY_AL_SHORT]);
+     SetProp(P_M_ATTR_MOD, new[MY_AL_ATTRM]);
+     destruct_time=        time()+new[MY_AL_DESTRUCT];
+
+     call_out(#'remove,new[3]);
+    } else call_out(#'remove,0);
+
+    return new;
+   }
+
+
+   ## Variante 3: und das gleiche mit Set/Querymethoden ##
+   // Prototypen fuer Set und Query-Methoden -> man Set
+   static mixed *my_query_autoloadobj();
+   static mixed *my_set_autoloadobj(mixed *new);
+
+   void create() {
+    // Binden der Methoden
+    Set(P_AUTOLOADOBJ, #'my_query_autoloadobj, F_QUERY_METHOD);
+    Set(P_AUTOLOADOBJ, #'my_set_autoloadobj, F_SET_METHOD);
+
+    // die werden nur von mir veraendert!
+    Set(P_AUTOLOADOBJ, PROTECTED, F_MODE_AS);
+    ...
+   }
+
+   static mixed *my_query_autoloadobj () {
+     // s.o.
+   }
+
+   static mixed *my_set_autoloadobj (mixed *new) {
+     // s.o.
+   }
+
+
+SIEHE AUCH
+==========
+
+   P_AUTOLOAD, SetProp
 
 24.Aug.2006 Gloinson@MG
diff --git a/doc/props/P_AVATAR_URI b/doc/props/P_AVATAR_URI
index 3275399..0a2437c 100644
--- a/doc/props/P_AVATAR_URI
+++ b/doc/props/P_AVATAR_URI
@@ -1,22 +1,44 @@
-NAME:
-    P_AVATAR_URI                    "p_lib_avataruri"
 
-DEFINIERT IN:
-    /sys/living/description.h
+P_AVATAR_URI
+************
 
-BESCHREIBUNG:
-    Lebewesen speichern in der Prop P_AVATAR_URI eine URI (string), welche auf
-    ein Bild im Netz verweist, welches ein Client fuer dieses Lebewesen
-    anzeigen kann.
-    Spieler koennen diese Avatar-URI mit dem Befehl 'avatar' anzeigen,
-    aendern und loeschen.
-    Avatar-URIs anderer Spieler lassen sich mit 'finger -a' ausgeben.
 
-BEMERKUNGEN:
-    Diese Property kann nur vom Spieler oder einem EM modifiziert werden.
+NAME
+====
 
-SIEHE AUCH:
-    avatar
+   P_AVATAR_URI                    "p_lib_avataruri"
 
-LETZTER AENDERUNG:
-    03.9.2011, Zesstra
+
+DEFINIERT IN
+============
+
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+   Lebewesen speichern in der Prop P_AVATAR_URI eine URI (string), welche auf
+   ein Bild im Netz verweist, welches ein Client fuer dieses Lebewesen
+   anzeigen kann.
+   Spieler koennen diese Avatar-URI mit dem Befehl 'avatar' anzeigen,
+   aendern und loeschen.
+   Avatar-URIs anderer Spieler lassen sich mit 'finger -a' ausgeben.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property kann nur vom Spieler oder einem EM modifiziert werden.
+
+
+SIEHE AUCH
+==========
+
+   avatar
+
+
+LETZTER AENDERUNG
+=================
+
+   03.9.2011, Zesstra
diff --git a/doc/props/P_AVERAGE_SIZE b/doc/props/P_AVERAGE_SIZE
index 4a61208..155528f 100644
--- a/doc/props/P_AVERAGE_SIZE
+++ b/doc/props/P_AVERAGE_SIZE
@@ -1,8 +1,21 @@
-NAME:
-    P_AVERAGE_SIZE                "average_size"                
 
-DEFINIERT IN:
-    /sys/player/description.h
+P_AVERAGE_SIZE
+**************
 
-BESCHREIBUNG:
-     Durchschnittliche Groesse eines Wesens dieser Rasse (derzeit nur Player)
+
+NAME
+====
+
+   P_AVERAGE_SIZE                "average_size"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/description.h
+
+
+BESCHREIBUNG
+============
+
+   Durchschnittliche Groesse eines Wesens dieser Rasse (derzeit nur Player)
diff --git a/doc/props/P_AVERAGE_WEIGHT b/doc/props/P_AVERAGE_WEIGHT
index 18557cc..d71c53b 100644
--- a/doc/props/P_AVERAGE_WEIGHT
+++ b/doc/props/P_AVERAGE_WEIGHT
@@ -1,8 +1,21 @@
-NAME:
-    P_AVERAGE_WEIGHT                "average_weight"
 
-DEFINIERT IN:
-    /sys/player/description.h
+P_AVERAGE_WEIGHT
+****************
 
-BESCHREIBUNG:
-     Durchschnittliche Gewicht eines Wesens dieser Rasse (derzeit nur Player)
+
+NAME
+====
+
+   P_AVERAGE_WEIGHT                "average_weight"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/description.h
+
+
+BESCHREIBUNG
+============
+
+   Durchschnittliche Gewicht eines Wesens dieser Rasse (derzeit nur Player)
diff --git a/doc/props/P_AWAY b/doc/props/P_AWAY
index ba2c938..5678440 100644
--- a/doc/props/P_AWAY
+++ b/doc/props/P_AWAY
@@ -1,8 +1,21 @@
-NAME:
-    P_AWAY                        "away"                        
 
-DEFINIERT IN:
-    /sys/properties.h
+P_AWAY
+******
 
-BESCHREIBUNG:
-     String der ausgegeben wird, wenn man weg ist und eine Mitteilung bekommt.
+
+NAME
+====
+
+   P_AWAY                        "away"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   String der ausgegeben wird, wenn man weg ist und eine Mitteilung bekommt.
diff --git a/doc/props/P_BAD_MSG b/doc/props/P_BAD_MSG
index e067f2a..7015a9c 100644
--- a/doc/props/P_BAD_MSG
+++ b/doc/props/P_BAD_MSG
@@ -1,27 +1,48 @@
-NAME:
-     P_BAD_MSG                     "std_food_bad_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_BAD_MSG
+*********
 
-BESCHREIBUNG:
-     Meldung, wenn eine Speise gerade verdirbt.
-     Befindet sich die Speise in einem Spieler, geht die Meldung an genau
-     diesen, liegt die Speise im Raum, geht die Meldung an alle anwesenden
-     Spieler.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "@WER1 verdirbt."
 
-SIEHE AUCH:
-     P_LIFETIME, P_RESET_LIFETIME, P_NO_BAD,
-     wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_BAD_MSG                     "std_food_bad_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung, wenn eine Speise gerade verdirbt.
+   Befindet sich die Speise in einem Spieler, geht die Meldung an genau
+   diesen, liegt die Speise im Raum, geht die Meldung an alle anwesenden
+   Spieler.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "@WER1 verdirbt."
+
+
+SIEHE AUCH
+==========
+
+   P_LIFETIME, P_RESET_LIFETIME, P_NO_BAD,
+   wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_BLIND b/doc/props/P_BLIND
index a80814b..da86624 100644
--- a/doc/props/P_BLIND
+++ b/doc/props/P_BLIND
@@ -1,35 +1,56 @@
-NAME:
-    P_BLIND                       "blind"                       
 
-DEFINIERT IN:
-    /sys/player/viewcmd.h
+P_BLIND
+*******
 
-BESCHREIBUNG:
-    1, wenn der Spieler blind ist und nichts mehr sehen kann.
 
-    Wird von CannotSee() bei 'schau' und Betreten von Raeumen 
-    u.ae. ausgewertet.
+NAME
+====
 
-    P_BLIND kann auch auf einen String gesetzt werden, der 
-    dann statt des 'Du bist blind' ausgegeben wird.
+   P_BLIND                       "blind"
 
-BEISPIELE:
 
-    this_player()->SetProp(P_BLIND,1);
+DEFINIERT IN
+============
 
-    this_player()->SetProp(P_BLIND,"Du hast Dir vorhin so schoen die "
-                                  +"Augen ausgekratzt ... deswegen "
-                                  +"siehst Du nun nichts mehr.\n");    
-BEMERKUNGEN:
-    Um herauszufinden, ob ein Spieler etwas sehen kann oder nicht,
-    sollte man lieber if(this_player()->CannotSee() != 0) pruefen
-    statt if(this_player()->QueryProp(P_BLIND)).
+   /sys/player/viewcmd.h
 
-    Denn CannotSee() beruecksichtigt auch Nachtsicht (bzw. hier 
-    eine nicht aktivierte) und die Lichtmodifikatoren.
 
-SIEHE AUCH:
-    P_LIGHT_MODIFIER, P_PLAYER_LIGHT, CannotSee
+BESCHREIBUNG
+============
 
-----------------------------------------------------------------------------
+   1, wenn der Spieler blind ist und nichts mehr sehen kann.
+
+   Wird von CannotSee() bei 'schau' und Betreten von Raeumen
+   u.ae. ausgewertet.
+
+   P_BLIND kann auch auf einen String gesetzt werden, der
+   dann statt des 'Du bist blind' ausgegeben wird.
+
+
+BEISPIELE
+=========
+
+   this_player()->SetProp(P_BLIND,1);
+
+   this_player()->SetProp(P_BLIND,"Du hast Dir vorhin so schoen die "
+                                 +"Augen ausgekratzt ... deswegen "
+                                 +"siehst Du nun nichts mehr.\n");
+
+
+BEMERKUNGEN
+===========
+
+   Um herauszufinden, ob ein Spieler etwas sehen kann oder nicht,
+   sollte man lieber if(this_player()->CannotSee() != 0) pruefen
+   statt if(this_player()->QueryProp(P_BLIND)).
+
+   Denn CannotSee() beruecksichtigt auch Nachtsicht (bzw. hier
+   eine nicht aktivierte) und die Lichtmodifikatoren.
+
+
+SIEHE AUCH
+==========
+
+   P_LIGHT_MODIFIER, P_PLAYER_LIGHT, CannotSee
+
 Letzte Aenderung: Sa 02.11.02, 00:30:00 Uhr, von Tilly
diff --git a/doc/props/P_BODY b/doc/props/P_BODY
index 7d04581..5871adb 100644
--- a/doc/props/P_BODY
+++ b/doc/props/P_BODY
@@ -1,9 +1,22 @@
-NAME:
-    P_BODY                        "body"                        
 
-DEFINIERT IN:
-    /sys/properties.h
+P_BODY
+******
 
-BESCHREIBUNG:
-     Numerischer Wert fuer die Abwehrstaerke des blanken Koerpers
-     des Wesens.
+
+NAME
+====
+
+   P_BODY                        "body"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert fuer die Abwehrstaerke des blanken Koerpers
+   des Wesens.
diff --git a/doc/props/P_BRIEF b/doc/props/P_BRIEF
index 33ef486..f6d3769 100644
--- a/doc/props/P_BRIEF
+++ b/doc/props/P_BRIEF
@@ -1,8 +1,21 @@
-NAME:
-    P_BRIEF                       "brief"                       
 
-DEFINIERT IN:
-    /sys/player/viewcmd.h
+P_BRIEF
+*******
 
-BESCHREIBUNG:
-     Ist gesetzt, wenn der Spieler nur die Kurzbeschreibung sehen will.
+
+NAME
+====
+
+   P_BRIEF                       "brief"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/viewcmd.h
+
+
+BESCHREIBUNG
+============
+
+   Ist gesetzt, wenn der Spieler nur die Kurzbeschreibung sehen will.
diff --git a/doc/props/P_BUFFER b/doc/props/P_BUFFER
index 268f719..699f91c 100644
--- a/doc/props/P_BUFFER
+++ b/doc/props/P_BUFFER
@@ -1,9 +1,21 @@
-NAME:
-    P_BUFFER                      "buffer"                      
 
-DEFINIERT IN:
-    /sys/player/comm.h
+P_BUFFER
+********
 
-BESCHREIBUNG:
-    Zeigt an, ob der Kobold des Spielers aktiv oder nicht aktiv ist.
 
+NAME
+====
+
+   P_BUFFER                      "buffer"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/comm.h
+
+
+BESCHREIBUNG
+============
+
+   Zeigt an, ob der Kobold des Spielers aktiv oder nicht aktiv ist.
diff --git a/doc/props/P_BUY_ONLY_PLANTS b/doc/props/P_BUY_ONLY_PLANTS
index 46747c4..0d15a94 100644
--- a/doc/props/P_BUY_ONLY_PLANTS
+++ b/doc/props/P_BUY_ONLY_PLANTS
@@ -1,15 +1,31 @@
-NAME:
-    P_BUY_ONLY_PLANTS              "lib_p_buy_only_plants"
 
-DEFINIERT IN:
-    /sys/room/description.h
+P_BUY_ONLY_PLANTS
+*****************
 
-BESCHREIBUNG:
-    Diese Property kann auf 1 gesetzt werden, wenn ein Laden nur Kraeuter
-    ankaufen darf. Hierzu muss /std/room/kraeuterladen.c geerbt werden,
-    da nur dieses Objekt die Property beruecksichtigt.
 
-SIEHE AUCH:
-    /std/room/kraeuterladen.c
-----------------------------------------------------------------------------
-Last modified: 02.04.2015 Arathorn 
+NAME
+====
+
+   P_BUY_ONLY_PLANTS              "lib_p_buy_only_plants"
+
+
+DEFINIERT IN
+============
+
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property kann auf 1 gesetzt werden, wenn ein Laden nur Kraeuter
+   ankaufen darf. Hierzu muss /std/room/kraeuterladen.c geerbt werden,
+   da nur dieses Objekt die Property beruecksichtigt.
+
+
+SIEHE AUCH
+==========
+
+   /std/room/kraeuterladen.c
+
+Last modified: 02.04.2015 Arathorn
diff --git a/doc/props/P_CALLED_FROM_IP b/doc/props/P_CALLED_FROM_IP
index d9427d2..306241c 100644
--- a/doc/props/P_CALLED_FROM_IP
+++ b/doc/props/P_CALLED_FROM_IP
@@ -1,8 +1,21 @@
-NAME:
-    P_CALLED_FROM_IP              "called_from_ip"              
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CALLED_FROM_IP
+****************
 
-BESCHREIBUNG:
-     Letzte IP-Adr, von der aus sich der Spieler eingeloggt hat.
+
+NAME
+====
+
+   P_CALLED_FROM_IP              "called_from_ip"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Letzte IP-Adr, von der aus sich der Spieler eingeloggt hat.
diff --git a/doc/props/P_CAN_FLAGS b/doc/props/P_CAN_FLAGS
index ba3eb2a..06afe76 100644
--- a/doc/props/P_CAN_FLAGS
+++ b/doc/props/P_CAN_FLAGS
@@ -1,9 +1,22 @@
-NAME:
-    P_CAN_FLAGS                   "can_flags"                   
 
-DEFINIERT IN:
-    /sys/player/can.h
+P_CAN_FLAGS
+***********
 
-BESCHREIBUNG:
-    Flags die bestimmte Befehle freischalten:
-    CAN_EMOTE, CAN_ECHO, CAN_REMOTE, CAN_PRESAY
+
+NAME
+====
+
+   P_CAN_FLAGS                   "can_flags"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/can.h
+
+
+BESCHREIBUNG
+============
+
+   Flags die bestimmte Befehle freischalten:
+   CAN_EMOTE, CAN_ECHO, CAN_REMOTE, CAN_PRESAY
diff --git a/doc/props/P_CAP_NAME b/doc/props/P_CAP_NAME
index 7fbe408..0069948 100644
--- a/doc/props/P_CAP_NAME
+++ b/doc/props/P_CAP_NAME
@@ -1,9 +1,22 @@
-NAME:
-    P_CAP_NAME                    "cap_name"                    
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CAP_NAME
+**********
 
-BESCHREIBUNG:
-     Name des Spielers, der dekliniert und ausgegen wird.
-     NOT YET IMPLEMENTED.
+
+NAME
+====
+
+   P_CAP_NAME                    "cap_name"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Name des Spielers, der dekliniert und ausgegen wird.
+   NOT YET IMPLEMENTED.
diff --git a/doc/props/P_CARRIED_VALUE b/doc/props/P_CARRIED_VALUE
index 7df9b63..8792664 100644
--- a/doc/props/P_CARRIED_VALUE
+++ b/doc/props/P_CARRIED_VALUE
@@ -1,8 +1,21 @@
-NAME:
-    P_CARRIED_VALUE               "carried"                     
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_CARRIED_VALUE
+***************
 
-BESCHREIBUNG:
-     Entschaedigung, die der Spieler beim Einloggen erhaelt.
+
+NAME
+====
+
+   P_CARRIED_VALUE               "carried"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Entschaedigung, die der Spieler beim Einloggen erhaelt.
diff --git a/doc/props/P_CHATS b/doc/props/P_CHATS
index 633cdea..51e1a5e 100644
--- a/doc/props/P_CHATS
+++ b/doc/props/P_CHATS
@@ -1,8 +1,21 @@
-NAME:
-    P_CHATS                       "chats"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CHATS
+*******
 
-BESCHREIBUNG:
-     Alist mit Strings, die das Monster zufaellig ausgibt.
+
+NAME
+====
+
+   P_CHATS                       "chats"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Alist mit Strings, die das Monster zufaellig ausgibt.
diff --git a/doc/props/P_CHAT_CHANCE b/doc/props/P_CHAT_CHANCE
index b6acf08..bd032bf 100644
--- a/doc/props/P_CHAT_CHANCE
+++ b/doc/props/P_CHAT_CHANCE
@@ -1,8 +1,21 @@
-NAME:
-    P_CHAT_CHANCE                 "chat_chance"                 
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CHAT_CHANCE
+*************
 
-BESCHREIBUNG:
-     Wahrscheinlichkeit, mit der die Chats ausgegeben werden.
+
+NAME
+====
+
+   P_CHAT_CHANCE                 "chat_chance"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wahrscheinlichkeit, mit der die Chats ausgegeben werden.
diff --git a/doc/props/P_CLASS b/doc/props/P_CLASS
index e074394..80017cc 100644
--- a/doc/props/P_CLASS
+++ b/doc/props/P_CLASS
@@ -1,19 +1,33 @@
+
 P_CLASS
-NAME:
-     P_CLASS						"class"
+*******
 
-DEFINIERT IN:
-     <thing/description.h>
 
-BESCHREIBUNG:
-     Die Klassifizierung eines Objektes, soweit sie nicht schon ueber die 
-     Rasse oder die IDs des Objektes erfolgt ist. Zum Setzen dieser Property 
-     sollte man AddClass() benutzen, zur Klassenabfrage steht 
-     is_class_member() zur Verfuegung.
-     Die moeglichen Klassen findet man in /sys/class.h
+NAME
+====
 
-SIEHE AUCH:
-     AddClass(), RemoveClass(), is_class_member()
+   P_CLASS                                            "class"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   <thing/description.h>
+
+
+BESCHREIBUNG
+============
+
+   Die Klassifizierung eines Objektes, soweit sie nicht schon ueber die
+   Rasse oder die IDs des Objektes erfolgt ist. Zum Setzen dieser Property
+   sollte man AddClass() benutzen, zur Klassenabfrage steht
+   is_class_member() zur Verfuegung.
+   Die moeglichen Klassen findet man in /sys/class.h
+
+
+SIEHE AUCH
+==========
+
+   AddClass(), RemoveClass(), is_class_member()
+
 Last modified: Sun May 19 20:30:09 1996 by Wargon
diff --git a/doc/props/P_CLOCKMSG b/doc/props/P_CLOCKMSG
index 8b72d68..6f85b56 100644
--- a/doc/props/P_CLOCKMSG
+++ b/doc/props/P_CLOCKMSG
@@ -1,8 +1,21 @@
-NAME:
-    P_CLOCKMSG                    "clockmsg"                    
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CLOCKMSG
+**********
 
-BESCHREIBUNG:
-     Die Meldung wird zur vollen Stunde ausgegeben
+
+NAME
+====
+
+   P_CLOCKMSG                    "clockmsg"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Die Meldung wird zur vollen Stunde ausgegeben
diff --git a/doc/props/P_CLONER b/doc/props/P_CLONER
index 659b614..75e9d02 100644
--- a/doc/props/P_CLONER
+++ b/doc/props/P_CLONER
@@ -1,12 +1,28 @@
-NAME:
-    P_CLONER                      "cloner"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CLONER
+********
 
-BESCHREIBUNG:
-     Enthaelt einen String mit dem Namen desjenigen, der das Objekt gecloned 
-     hat.
 
-SIEHE AUCH:
-     P_CLONE_TIME
+NAME
+====
+
+   P_CLONER                      "cloner"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt einen String mit dem Namen desjenigen, der das Objekt gecloned
+   hat.
+
+
+SIEHE AUCH
+==========
+
+   P_CLONE_TIME
diff --git a/doc/props/P_CLONE_MSG b/doc/props/P_CLONE_MSG
index d9c96a2..d16f42e 100644
--- a/doc/props/P_CLONE_MSG
+++ b/doc/props/P_CLONE_MSG
@@ -1,8 +1,21 @@
-NAME:
-    P_CLONE_MSG                   "clone_msg"                   
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_CLONE_MSG
+***********
 
-BESCHREIBUNG:
-     Meldung, die beim Clonen eines Obj ausgegegen wird (nur Magier)
+
+NAME
+====
+
+   P_CLONE_MSG                   "clone_msg"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Meldung, die beim Clonen eines Obj ausgegegen wird (nur Magier)
diff --git a/doc/props/P_CLONE_TIME b/doc/props/P_CLONE_TIME
index a904846..fb7c3e5 100644
--- a/doc/props/P_CLONE_TIME
+++ b/doc/props/P_CLONE_TIME
@@ -1,14 +1,30 @@
-NAME:
-    P_CLONE_TIME                   "clone_time"                      
 
-DEFINIERT IN:
-    /sys/thing/description.h
+P_CLONE_TIME
+************
 
-BESCHREIBUNG:
-     Enthaelt die Clone-Time eines Objektes.
-     Heutzutage obsolet, bitte stattdessen lieber die Efun object_time()
-     benutzen.
 
-SIEHE AUCH:
-     Verwandt: object_time(E)
-     Aehnlich: program_time(E)
+NAME
+====
+
+   P_CLONE_TIME                   "clone_time"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die Clone-Time eines Objektes.
+   Heutzutage obsolet, bitte stattdessen lieber die Efun object_time()
+   benutzen.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt: object_time(E)
+   Aehnlich: program_time(E)
diff --git a/doc/props/P_CLOTHING b/doc/props/P_CLOTHING
index 793f098..3458058 100644
--- a/doc/props/P_CLOTHING
+++ b/doc/props/P_CLOTHING
@@ -1,22 +1,42 @@
+
+P_CLOTHING
+**********
+
+
 P_CLOTHINGS
+===========
 
-NAME:
-     P_CLOTHING                     "std:clothing"
 
-DEFINIERT IN:
-     <living/clothing.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Array mit der getragenen nicht-schuetzenden Kleidung des Lebewesen.
-     
-     Falls ihr die Kleidung des Lebewesens, ggf. mit bestimten Kriterien,
-     ermitteln wollt, benutzt hierfuer bitte die Funktion FilterClothing()
-     statt selber ueber dieses Array zu laufen.
+   P_CLOTHING                     "std:clothing"
 
-     Diese Property kann nur vom Lebewesen selber beschrieben werden.
-     
-SIEHE AUCH:
-     Verwandt:		QueryArmourByType(L), FilterClothing(), FilterArmours()
-                  Wear(), Unwear(), P_ARMOURS
+
+DEFINIERT IN
+============
+
+   <living/clothing.h>
+
+
+BESCHREIBUNG
+============
+
+   Array mit der getragenen nicht-schuetzenden Kleidung des Lebewesen.
+
+
+
+   Falls ihr die Kleidung des Lebewesens, ggf. mit bestimten Kriterien,
+   ermitteln wollt, benutzt hierfuer bitte die Funktion FilterClothing()
+   statt selber ueber dieses Array zu laufen.
+
+   Diese Property kann nur vom Lebewesen selber beschrieben werden.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:          QueryArmourByType(L), FilterClothing(), FilterArmours()
+                Wear(), Unwear(), P_ARMOURS
 
 14.03.2009, Zesstra
diff --git a/doc/props/P_CMSG b/doc/props/P_CMSG
index 9001722..e38f085 100644
--- a/doc/props/P_CMSG
+++ b/doc/props/P_CMSG
@@ -1,8 +1,21 @@
-NAME:
-    P_CMSG                        "clonemsg"                    
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_CMSG
+******
 
-BESCHREIBUNG:
-     *** OBSOLET! *** Siehe P_CLONE_MSG
+
+NAME
+====
+
+   P_CMSG                        "clonemsg"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   *** OBSOLET! *** Siehe P_CLONE_MSG
diff --git a/doc/props/P_CNT_STATUS b/doc/props/P_CNT_STATUS
index cd92324..5bcc584 100644
--- a/doc/props/P_CNT_STATUS
+++ b/doc/props/P_CNT_STATUS
@@ -1,9 +1,22 @@
-NAME:
-    P_CNT_STATUS                  "cnt_status"                  
 
-DEFINIERT IN:
-    /sys/container.h
+P_CNT_STATUS
+************
 
-BESCHREIBUNG:
-     Status des Containers (offen, geschlossen, abgeschlossen)
-     siehe auch /sys/container.h
+
+NAME
+====
+
+   P_CNT_STATUS                  "cnt_status"
+
+
+DEFINIERT IN
+============
+
+   /sys/container.h
+
+
+BESCHREIBUNG
+============
+
+   Status des Containers (offen, geschlossen, abgeschlossen)
+   siehe auch /sys/container.h
diff --git a/doc/props/P_COMBATCMDS b/doc/props/P_COMBATCMDS
index c29a65f..e82336a 100644
--- a/doc/props/P_COMBATCMDS
+++ b/doc/props/P_COMBATCMDS
@@ -1,31 +1,44 @@
-NAME:
-    P_COMBATCMDS                  "combatcmds"                  
 
-DEFINIERT IN:
-    /sys/properties.h
+P_COMBATCMDS
+************
 
-BESCHREIBUNG:
-     Fuer den Kampf gebrauchbare Befehle spezieller Objekte (damit auch
-     Monster sie automatisch richtig anwenden koennen)
-     Der Inhalt von P_COMBATCMDS ist ein Mapping, der Key ist das Kommando,
-     um den Gegenstand zu benutzen (also z.B. "wirf flammenkugel"), und der
-     Value ein weiteres Mapping mit Zusatzinfos (definiert in /sys/combat.h).
-     Folgende Keys sind definiert:
-     - C_MIN, C_AVG, C_MAX:
-       minimaler, mittlerer und maximaler Schaden, den das
-       Objekt macht. Alle Angaben in LEBENSPUNKTEN, d.h. Defend-Einheiten/10.
-       Bei einem Aufruf wie 'enemy->Defend(200+random(200), ...)' ist dann
-       C_MIN=20, C_AVG=30, C_MAX=40.
-     - C_DTYPES:
-       Array mit dem Schadenstyp oder den Schadenstypen. Beim Eisstab
-       wuerde der Eintrag dann 'C_DTYPES:({DT_COLD})' lauten.
-     - C_HEAL:
-       Sollte das Kampfobjekt ueber die Moeglichkeit verfuegen, den Anwender
-       irgendwie zu heilen, so wird hier die Heilung in LP/MP eingetragen.
-       Das funktioniert auch bei Objekten, die nur heilen, also sonst
-       nichts mit Kampf zu tun haben.
-       Im Lupinental z.B. gibt es Pfirsiche, die beim Essen 5LP heilen. Da
-       kann man dann 'SetProp(P_COMBATCMDS, (["iss pfirsich":([C_HEAL:5])]))'
-       eintragen.
-     Es sind auch mehrere Kommandos moeglich, z.B. bei Objekten, die sowohl
-     heilen als auch Kampfwirkung haben.
+
+NAME
+====
+
+   P_COMBATCMDS                  "combatcmds"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Fuer den Kampf gebrauchbare Befehle spezieller Objekte (damit auch
+   Monster sie automatisch richtig anwenden koennen)
+   Der Inhalt von P_COMBATCMDS ist ein Mapping, der Key ist das Kommando,
+   um den Gegenstand zu benutzen (also z.B. "wirf flammenkugel"), und der
+   Value ein weiteres Mapping mit Zusatzinfos (definiert in /sys/combat.h).
+   Folgende Keys sind definiert:
+   - C_MIN, C_AVG, C_MAX:
+     minimaler, mittlerer und maximaler Schaden, den das
+     Objekt macht. Alle Angaben in LEBENSPUNKTEN, d.h. Defend-Einheiten/10.
+     Bei einem Aufruf wie 'enemy->Defend(200+random(200), ...)' ist dann
+     C_MIN=20, C_AVG=30, C_MAX=40.
+   - C_DTYPES:
+     Array mit dem Schadenstyp oder den Schadenstypen. Beim Eisstab
+     wuerde der Eintrag dann 'C_DTYPES:({DT_COLD})' lauten.
+   - C_HEAL:
+     Sollte das Kampfobjekt ueber die Moeglichkeit verfuegen, den Anwender
+     irgendwie zu heilen, so wird hier die Heilung in LP/MP eingetragen.
+     Das funktioniert auch bei Objekten, die nur heilen, also sonst
+     nichts mit Kampf zu tun haben.
+     Im Lupinental z.B. gibt es Pfirsiche, die beim Essen 5LP heilen. Da
+     kann man dann 'SetProp(P_COMBATCMDS, (["iss pfirsich":([C_HEAL:5])]))'
+     eintragen.
+   Es sind auch mehrere Kommandos moeglich, z.B. bei Objekten, die sowohl
+   heilen als auch Kampfwirkung haben.
diff --git a/doc/props/P_COMMANDS b/doc/props/P_COMMANDS
index d0ff99b..5812b35 100644
--- a/doc/props/P_COMMANDS
+++ b/doc/props/P_COMMANDS
@@ -1,58 +1,76 @@
+
 P_COMMANDS
-NAME:
-     P_COMMANDS "commands"
+**********
 
-DEFINIERT IN:
-     <thing/commands.h>
 
-BESCHREIBUNG:
-     Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt
-     zugeordnet sind.
+NAME
+====
 
-     Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die
-     Funktionen AddCmd() und RemoveCmd().
+   P_COMMANDS "commands"
 
-     Das Mapping hat folgenden Aufbau:
 
-     ([ befehl : ({funktion1,...});
-                 ({flag1,...});
-                 ({regel1,...});
-                 ({id1, ...}),
-                 ({closure auf fun1, ...}),
-        ... ])
+DEFINIERT IN
+============
 
-     Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind
-     aber in anderer Form. Als Beispiel:
+   <thing/commands.h>
 
-     AddCmd(verb,fun1,1);
-     AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2,
-            error1_notify|error2_notify^error2_write);
-     -->
-     ([verb:
-        ({fun1,fun2});                                        // funs
-        ({1,({error1_notify, error2_write^error2_say, 1})});  // flags
-        ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})});      // rules
-        0;                                                    // IDs
-        ({closure auf fun1, closure auf fun2}) ])             // Cache
 
-     Funs:  ({<fun1> ,...
-              'fun' kann sein: Closure
-                               String: Methodenname - wird etwas geprueft
-                               Objekt: wenn keine Methode, this_object() fuer
-                                       intern, previous_object() fuer extern
-                               0 (erloschenes externes Objekt)
-     Rules: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>,
-                                       <2. Synonymgruppe, ...}), ...})
-     Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
-                                  [, Index fuer write anstatt notify_fail]}),
-             ... })
-     IDs:   0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ...
-     Cache: ({<closure fuer fun1>, ...
+BESCHREIBUNG
+============
 
-BEMERKUNGEN:
-     Cache-Closures sind bei Export immer genullt
+   Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt
+   zugeordnet sind.
 
-SIEHE AUCH:
-     /std/thing/commands.c, AddCmd(), RemoveCmd()
+   Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die
+   Funktionen AddCmd() und RemoveCmd().
 
-16. Dez 2016 Gloinson
\ No newline at end of file
+   Das Mapping hat folgenden Aufbau:
+
+   ([ befehl : ({funktion1,...});
+               ({flag1,...});
+               ({regel1,...});
+               ({id1, ...}),
+               ({closure auf fun1, ...}),
+      ... ])
+
+   Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind
+   aber in anderer Form. Als Beispiel:
+
+   AddCmd(verb,fun1,1);
+   AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2,
+          error1_notify|error2_notify^error2_write);
+   -->
+   ([verb:
+      ({fun1,fun2});                                        // funs
+      ({1,({error1_notify, error2_write^error2_say, 1})});  // flags
+      ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})});      // rules
+      0;                                                    // IDs
+      ({closure auf fun1, closure auf fun2}) ])             // Cache
+
+   Funs:  ({<fun1> ,...
+            'fun' kann sein: Closure
+                             String: Methodenname - wird etwas geprueft
+                             Objekt: wenn keine Methode, this_object() fuer
+                                     intern, previous_object() fuer extern
+                             0 (erloschenes externes Objekt)
+   Rules: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>,
+                                     <2. Synonymgruppe, ...}), ...})
+   Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
+                                [, Index fuer write anstatt notify_fail]}),
+           ... })
+   IDs:   0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ...
+   Cache: ({<closure fuer fun1>, ...
+
+
+BEMERKUNGEN
+===========
+
+   Cache-Closures sind bei Export immer genullt
+
+
+SIEHE AUCH
+==========
+
+   /std/thing/commands.c, AddCmd(), RemoveCmd()
+
+16. Dez 2016 Gloinson
diff --git a/doc/props/P_COMPILER_PATH b/doc/props/P_COMPILER_PATH
index ecd2743..e67d01f 100644
--- a/doc/props/P_COMPILER_PATH
+++ b/doc/props/P_COMPILER_PATH
@@ -1,21 +1,40 @@
-NAME:
-    P_COMPILER_PATH               "compiler_path"               
 
-DEFINIERT IN:
-    /sys/v_compiler.h
+P_COMPILER_PATH
+***************
 
-BESCHREIBUNG:
-    Directory in dem ein Virtual Compiler Objekte erzeugt.
-    Muss im virtual_compiler.c gesetzt werden.
 
-    Der VirtualCompiler muss nicht zwingend in diesem Verzeichnis
-    liegen, um zu funktionieren, sollte es aber, um die Zuordnung des VCs zu
-    "seinen" Objekten zu erleichern.
+NAME
+====
 
-BEISPIEL:
-    SetProp(P_COMPILER_PATH,"/d/region/magier/vc/");
+   P_COMPILER_PATH               "compiler_path"
 
-SIEHE AUCH:
-    P_STD_OBJECT, virtual_compiler
--------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/v_compiler.h
+
+
+BESCHREIBUNG
+============
+
+   Directory in dem ein Virtual Compiler Objekte erzeugt.
+   Muss im virtual_compiler.c gesetzt werden.
+
+   Der VirtualCompiler muss nicht zwingend in diesem Verzeichnis
+   liegen, um zu funktionieren, sollte es aber, um die Zuordnung des VCs zu
+   "seinen" Objekten zu erleichern.
+
+
+BEISPIEL
+========
+
+   SetProp(P_COMPILER_PATH,"/d/region/magier/vc/");
+
+
+SIEHE AUCH
+==========
+
+   P_STD_OBJECT, virtual_compiler
+
 Letzte Aenderung: 23.10.2007, von Zesstra
diff --git a/doc/props/P_CONSUME_MSG b/doc/props/P_CONSUME_MSG
index 8b8a05a..0300037 100644
--- a/doc/props/P_CONSUME_MSG
+++ b/doc/props/P_CONSUME_MSG
@@ -1,24 +1,45 @@
-NAME:
-     P_CONSUME_MSG                 "std_food_consume_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_CONSUME_MSG
+*************
 
-BESCHREIBUNG:
-     Meldung an den Raum exklusive Konsument, wenn eine Speise konsumiert
-     wird.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "@WER2 konsumiert @WEN1."
 
-SIEHE AUCH:
-     /std/food.c, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_CONSUME_MSG                 "std_food_consume_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Raum exklusive Konsument, wenn eine Speise konsumiert
+   wird.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "@WER2 konsumiert @WEN1."
+
+
+SIEHE AUCH
+==========
+
+   /std/food.c, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_CONTAINER b/doc/props/P_CONTAINER
index ed15ca5..e779f75 100644
--- a/doc/props/P_CONTAINER
+++ b/doc/props/P_CONTAINER
@@ -1,8 +1,21 @@
-NAME:
-    P_CONTAINER                   "container"                   
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CONTAINER
+***********
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_CONTAINER                   "container"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_CONTENTS b/doc/props/P_CONTENTS
index 1212da7..fc9f20e 100644
--- a/doc/props/P_CONTENTS
+++ b/doc/props/P_CONTENTS
@@ -1,8 +1,21 @@
-NAME:
-    P_CONTENTS                    "contents"                    
 
-DEFINIERT IN:
-    /sys/container.h
+P_CONTENTS
+**********
 
-BESCHREIBUNG:
-     *** OBSOLET! ***
+
+NAME
+====
+
+   P_CONTENTS                    "contents"
+
+
+DEFINIERT IN
+============
+
+   /sys/container.h
+
+
+BESCHREIBUNG
+============
+
+   *** OBSOLET! ***
diff --git a/doc/props/P_CORPSE b/doc/props/P_CORPSE
index bcb0ab6..762f03c 100644
--- a/doc/props/P_CORPSE
+++ b/doc/props/P_CORPSE
@@ -1,25 +1,43 @@
-NAME:
-    P_CORPSE		"corpse"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_CORPSE
+********
 
-BESCHREIBUNG:
-    Hier kann man angeben, welche Art von Leiche beim Tod des NPCs
-    hinterlassen wird. Damit die Leiche auf dem Moerder-Kanal senden
-    kann, muss das Leichen-Objekt /std/corpse sein oder erben.
 
-BEISPIELE:
-    Die uebliche Standardleiche befindet sich unter "/std/corpse.c",
-    welches auch die Defaulteinstellung fuer diese Property darstellt:
-      SetProp(P_CORPSE,"/std/corpse");
-    Man koennte aber auch einen Zombie entstehen lassen:
-      SetProp(P_CORPSE,PATH("zombie"));
-    PATH kennzeichnet hierbei den Pfad, unter welchem "zombie.c" zu
-    finden ist.
+NAME
+====
 
-SIEHE AUCH:
-    P_NOCORPSE, P_ZAP_MSG, P_DIE_MSG, P_MURDER_MSG, P_KILL_MSG
+   P_CORPSE            "corpse"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Hier kann man angeben, welche Art von Leiche beim Tod des NPCs
+   hinterlassen wird. Damit die Leiche auf dem Moerder-Kanal senden
+   kann, muss das Leichen-Objekt /std/corpse sein oder erben.
+
+
+BEISPIELE
+=========
+
+   Die uebliche Standardleiche befindet sich unter "/std/corpse.c",
+   welches auch die Defaulteinstellung fuer diese Property darstellt:
+     SetProp(P_CORPSE,"/std/corpse");
+   Man koennte aber auch einen Zombie entstehen lassen:
+     SetProp(P_CORPSE,PATH("zombie"));
+   PATH kennzeichnet hierbei den Pfad, unter welchem "zombie.c" zu
+   finden ist.
+
+
+SIEHE AUCH
+==========
+
+   P_NOCORPSE, P_ZAP_MSG, P_DIE_MSG, P_MURDER_MSG, P_KILL_MSG
+
 Last modified: Mon Apr 07 11:02:06 2003 by Mandragon
diff --git a/doc/props/P_CURRENTDIR b/doc/props/P_CURRENTDIR
index 87bbd5c..b1dc2a4 100644
--- a/doc/props/P_CURRENTDIR
+++ b/doc/props/P_CURRENTDIR
@@ -1,15 +1,28 @@
-NAME:
-    P_CURRENTDIR                  "currentdir"
 
-DEFINIERT IN:
-    /sys/shells.h
+P_CURRENTDIR
+************
 
-BESCHREIBUNG:
-    Momentanes Verzeichnis in dem der Magier ist.
-    (nur fuer Magier von Belang)
+
+NAME
+====
+
+   P_CURRENTDIR                  "currentdir"
+
+
+DEFINIERT IN
+============
+
+   /sys/shells.h
+
+
+BESCHREIBUNG
+============
+
+   Momentanes Verzeichnis in dem der Magier ist.
+   (nur fuer Magier von Belang)
 
 Siehe auch:
-    P_CURRENTDIR
+   P_CURRENTDIR
 
 Letzte Aenderung:
-    03.06.2015, Bugfix
+   03.06.2015, Bugfix
diff --git a/doc/props/P_CURSED b/doc/props/P_CURSED
index 9253890..c3a9061 100644
--- a/doc/props/P_CURSED
+++ b/doc/props/P_CURSED
@@ -1,39 +1,56 @@
+
 P_CURSED
+********
 
-NAME:
-     P_CURSED "cursed"
 
-DEFINIERT IN:
-     <properties.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Ruestungen und Waffen, die sich, einmal angezogen bzw. gezueckt, nicht
-     wieder entfernen lassen sollen, kann man ueber diese Property
-     realisieren. Die Waffe oder Ruestung hat dann in der Regel negative
-     Auswirkungen auf den Traeger...
+   P_CURSED "cursed"
 
-     Setzt man diese Property auf eine Zahl ungleich 0, so bekommt man bei
-     dem Versuch, den verfluchten Gegenstand auszuziehen bzw. wegzustecken
-     eine Defaultmeldung.
 
-     Traegt man dagegen einen String ein, so wird dieser beim Versuch, den
-     Gegenstand loszuwerden, ausgegeben.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     Der 'Fluch' wird erst wirksam, wenn das Opfer die Waffe zueckt bzw. die
-     Ruestung anzieht. Ist dies erst einmal geschehen, helfen nur noch
-     Zaubersprueche oder fluchbrechende Institutionen.
+   <properties.h>
 
-     Moechte man, dass der Gegenstand entfluchbar ist, dann sollte er auch
-     ansprechbar sein (gueltige ID, nicht unsichtbar), da das durch derzeitige
-     Entfluchmoeglichkeiten vorausgesetzt wird.
 
-     Flueche koennen ein P_LEVEL 1-100 haben, welches die Schwierigkeit des
-     Enfluchens festlegt. Der Klerus behandelt das nicht linear.
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-     Eigenschaften: P_LEVEL
-     Aehnlich:      AddClass (CL_CURSE)
-     Code:         /std/armour, /std/weapon, /gilden/files.klerus/prayermaster
+   Ruestungen und Waffen, die sich, einmal angezogen bzw. gezueckt, nicht
+   wieder entfernen lassen sollen, kann man ueber diese Property
+   realisieren. Die Waffe oder Ruestung hat dann in der Regel negative
+   Auswirkungen auf den Traeger...
+
+   Setzt man diese Property auf eine Zahl ungleich 0, so bekommt man bei
+   dem Versuch, den verfluchten Gegenstand auszuziehen bzw. wegzustecken
+   eine Defaultmeldung.
+
+   Traegt man dagegen einen String ein, so wird dieser beim Versuch, den
+   Gegenstand loszuwerden, ausgegeben.
+
+
+BEMERKUNGEN
+===========
+
+   Der 'Fluch' wird erst wirksam, wenn das Opfer die Waffe zueckt bzw. die
+   Ruestung anzieht. Ist dies erst einmal geschehen, helfen nur noch
+   Zaubersprueche oder fluchbrechende Institutionen.
+
+   Moechte man, dass der Gegenstand entfluchbar ist, dann sollte er auch
+   ansprechbar sein (gueltige ID, nicht unsichtbar), da das durch derzeitige
+   Entfluchmoeglichkeiten vorausgesetzt wird.
+
+   Flueche koennen ein P_LEVEL 1-100 haben, welches die Schwierigkeit des
+   Enfluchens festlegt. Der Klerus behandelt das nicht linear.
+
+
+SIEHE AUCH
+==========
+
+   Eigenschaften: P_LEVEL
+   Aehnlich:      AddClass (CL_CURSE)
+   Code:         /std/armour, /std/weapon, /gilden/files.klerus/prayermaster
 
 25. Aug 2016 Gloinson
diff --git a/doc/props/P_DAMAGED b/doc/props/P_DAMAGED
index 671e0e0..91d5324 100644
--- a/doc/props/P_DAMAGED
+++ b/doc/props/P_DAMAGED
@@ -1,28 +1,41 @@
+
 P_DAMAGED
+*********
 
-NAME:
-     P_DAMAGED "item_damaged"
 
-DEFINIERT IN:
-     <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Ruestungen und Waffen koennen im Eifer des Gefechts beschaedigt werden.
-     Der Grad der Beschaedigung sollte in dieser Property festgehalten
-     werden.
+   P_DAMAGED "item_damaged"
 
-     Bei Waffen ergibt sich die urspruengliche Waffenklasse aus der Summe
-     von aktueller Waffenklasse und dem Wert von P_DAMAGED:
-     altes P_WC = aktuelles P_WC + P_DAMAGED.
 
-     Analoges gilt fuer die Ruestungsklasse einer beschaedigten Ruestung:
-     altes P_AC = aktuelles P_AC + P_DAMAGED.
+DEFINIERT IN
+============
 
-     P_DAMAGED bitte niemals direkt setzen, sondern immer ueber
-     die Funktion Damage() manipulieren!
+   <combat.h>
 
-SIEHE AUCH:
-     /std/armour.c, /std/weapon.c, TakeFlaw(), QueryFlaw(), Damage()
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Ruestungen und Waffen koennen im Eifer des Gefechts beschaedigt werden.
+   Der Grad der Beschaedigung sollte in dieser Property festgehalten
+   werden.
+
+   Bei Waffen ergibt sich die urspruengliche Waffenklasse aus der Summe
+   von aktueller Waffenklasse und dem Wert von P_DAMAGED:
+   altes P_WC = aktuelles P_WC + P_DAMAGED.
+
+   Analoges gilt fuer die Ruestungsklasse einer beschaedigten Ruestung:
+   altes P_AC = aktuelles P_AC + P_DAMAGED.
+
+   P_DAMAGED bitte niemals direkt setzen, sondern immer ueber
+   die Funktion Damage() manipulieren!
+
+
+SIEHE AUCH
+==========
+
+   /std/armour.c, /std/weapon.c, TakeFlaw(), QueryFlaw(), Damage()
+
 02.10.2007, Zesstra
diff --git a/doc/props/P_DAMAGE_MSG b/doc/props/P_DAMAGE_MSG
index 5906a3b..e9c71a8 100644
--- a/doc/props/P_DAMAGE_MSG
+++ b/doc/props/P_DAMAGE_MSG
@@ -1,44 +1,58 @@
+
 P_DAMAGE_MSG
+************
 
-NAME:
-     P_DAMAGE_MSG      "std_p_dam_msg"
 
-DEFINIERT IN:
-     /sys/living/combat.h
+NAME
+====
 
-BESCHREIBUNG:
-     In dieser Property lassen sich individuelle Treffer-/Schadensmeldungen
-     fuer dieses Lebewesen festlegen. Sie werden verwendet, falls bei
-     eingehendem Schaden der Aufrufer von Defend() Schadensmeldungen wuenscht
-     (d.h. SP_SHOW_DAMAGE != 0), jedoch keine eigenen Meldungen vorgibt.
+   P_DAMAGE_MSG      "std_p_dam_msg"
 
-     Enthaelt diese Property kein Array, werden ggf. die Standardmeldungen
-     ausgegeben.
 
-     Datenstruktur der Property:
-       ({
-        ({ int lphit1, string mess_me,
-                       string mess_en,
-                       string mess_room }),
-        ({ lphit2, mess_me, mess_en, mess_room }),
-        ...
-        ({ lphitn, mess_me, mess_en, mess_room }),
-       })
-       wobei lphit1<lphit2<...<lphitn sein muss, d.h. das Array-
-       Array ist aufsteigend sortiert.
+DEFINIERT IN
+============
 
-     Ist ein Treffer x LP hart, werden die Meldungen des lphit-
-     Arrays ausgegeben, dessen Wert am naechsten unter dem Schaden
-     liegt.
+   /sys/living/combat.h
 
-     In den Meldungen mess_me (an den Getroffenen), mess_en (an
-     den Feind), mess_room (an die restlichen Umstehenden) koennen
-     Ersatzstrings wie folgt verwendet werden:
-     @WER1/@WESSEN1/@WEM1/@WEN1 - name(casus) des Getroffenen (TO)
-     @WER2/@WESSEN2/@WEM2/@WEN2 - name(casus) des Feindes (enemy)
 
-SIEHE AUCH:
-     Defend()
-     /std/living/combat.c
+BESCHREIBUNG
+============
+
+   In dieser Property lassen sich individuelle Treffer-/Schadensmeldungen
+   fuer dieses Lebewesen festlegen. Sie werden verwendet, falls bei
+   eingehendem Schaden der Aufrufer von Defend() Schadensmeldungen wuenscht
+   (d.h. SP_SHOW_DAMAGE != 0), jedoch keine eigenen Meldungen vorgibt.
+
+   Enthaelt diese Property kein Array, werden ggf. die Standardmeldungen
+   ausgegeben.
+
+   Datenstruktur der Property:
+     ({
+      ({ int lphit1, string mess_me,
+                     string mess_en,
+                     string mess_room }),
+      ({ lphit2, mess_me, mess_en, mess_room }),
+      ...
+      ({ lphitn, mess_me, mess_en, mess_room }),
+     })
+     wobei lphit1<lphit2<...<lphitn sein muss, d.h. das Array-
+     Array ist aufsteigend sortiert.
+
+   Ist ein Treffer x LP hart, werden die Meldungen des lphit-
+   Arrays ausgegeben, dessen Wert am naechsten unter dem Schaden
+   liegt.
+
+   In den Meldungen mess_me (an den Getroffenen), mess_en (an
+   den Feind), mess_room (an die restlichen Umstehenden) koennen
+   Ersatzstrings wie folgt verwendet werden:
+   @WER1/@WESSEN1/@WEM1/@WEN1 - name(casus) des Getroffenen (TO)
+   @WER2/@WESSEN2/@WEM2/@WEN2 - name(casus) des Feindes (enemy)
+
+
+SIEHE AUCH
+==========
+
+   Defend()
+   /std/living/combat.c
 
 15.09.2010, Zesstra
diff --git a/doc/props/P_DAM_DESC b/doc/props/P_DAM_DESC
index 59938c7..151f555 100644
--- a/doc/props/P_DAM_DESC
+++ b/doc/props/P_DAM_DESC
@@ -1,35 +1,56 @@
+
 P_DAM_DESC
+**********
 
-NAME:
-     P_DAM_DESC "dam_desc"
 
-DEFINIERT IN:
-     <weapon/description.h>
+NAME
+====
 
-BESCHREIBUNG:
-     In dieser Property befindet sich ein String oder String-Array, durch 
-     den die Langbeschreibung einer Ruestung oder Waffe ergaenzt wird,
-     wenn diese Beschaedigt ist.
+   P_DAM_DESC "dam_desc"
 
-BEMERKUNGEN:
-     Wird ein String gesetzt, so wird dieser angezeigt, wenn die Waffe
-     mehr als die Haelfte beschaedigt ist. Bei einem Array wird der
-     Text entsprechend dem Grad der Beschaedigung ausgewaehlt; das Array
-     muss in der Reihenfolge zunehmender Beschaedigung sortiert sein.
-     
-     Bei Waffen ist P_DAM_DESC defaultmaessig auf DFLT_DAM_DESC gesetzt,
-     bei Ruestungen auf 0.
 
-BEISPIELE:
-     SetProp(P_DAM_DESC,"ist beschaedigt");
-     SetProp(P_DAM_DESC,({
-         "ist etwas beschaedigt",
-         "ist beschaedigt",
-         "ist beschaedigt",
-         "ist sehr beschaedigt"}) );
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     /std/weapon/description.c
+   <weapon/description.h>
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   In dieser Property befindet sich ein String oder String-Array, durch
+   den die Langbeschreibung einer Ruestung oder Waffe ergaenzt wird,
+   wenn diese Beschaedigt ist.
+
+
+BEMERKUNGEN
+===========
+
+   Wird ein String gesetzt, so wird dieser angezeigt, wenn die Waffe
+   mehr als die Haelfte beschaedigt ist. Bei einem Array wird der
+   Text entsprechend dem Grad der Beschaedigung ausgewaehlt; das Array
+   muss in der Reihenfolge zunehmender Beschaedigung sortiert sein.
+
+
+
+   Bei Waffen ist P_DAM_DESC defaultmaessig auf DFLT_DAM_DESC gesetzt,
+   bei Ruestungen auf 0.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_DAM_DESC,"ist beschaedigt");
+   SetProp(P_DAM_DESC,({
+       "ist etwas beschaedigt",
+       "ist beschaedigt",
+       "ist beschaedigt",
+       "ist sehr beschaedigt"}) );
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon/description.c
+
 Last modified: Mon Oct 14 15:29:00 1996 by Paracelsus
diff --git a/doc/props/P_DAM_TYPE b/doc/props/P_DAM_TYPE
index 56fb4bb..e5088d2 100644
--- a/doc/props/P_DAM_TYPE
+++ b/doc/props/P_DAM_TYPE
@@ -1,22 +1,35 @@
+
 P_DAM_TYPE
+**********
 
-NAME:
-     P_DAM_TYPE "dam_type"
 
-DEFINIERT IN:
-     <weapon.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Was fuer eine Art von Schaden richtet die Waffe an? Hier kann man einen
-     String oder ein Array von Strings angeben, je nachdem, welche Effekte
-     die Waffe ausloesen kann. Man sollte hier nur die in <combat.h>
-     definierten Schadenstypen verwenden.
+   P_DAM_TYPE "dam_type"
 
-     Fragt man diese Property ab, bekommt man uebrigens immer ein Array von
-     Strings zurueck.
 
-SIEHE AUCH:
-     /std/weapon.c
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <weapon.h>
+
+
+BESCHREIBUNG
+============
+
+   Was fuer eine Art von Schaden richtet die Waffe an? Hier kann man einen
+   String oder ein Array von Strings angeben, je nachdem, welche Effekte
+   die Waffe ausloesen kann. Man sollte hier nur die in <combat.h>
+   definierten Schadenstypen verwenden.
+
+   Fragt man diese Property ab, bekommt man uebrigens immer ein Array von
+   Strings zurueck.
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon.c
+
 Last modified: Sun May 19 15:23:43 1996 by Wargon
diff --git a/doc/props/P_DEADS b/doc/props/P_DEADS
index ca44cd7..03f0c07 100644
--- a/doc/props/P_DEADS
+++ b/doc/props/P_DEADS
@@ -1,9 +1,22 @@
-NAME:
-    P_DEADS                       "deads"                       
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_DEADS
+*******
 
-BESCHREIBUNG:
-     Anzahl der Tode des Spielers seit Einfuehrung dieser Property (irgendwann
-     im Dezember 94)
+
+NAME
+====
+
+   P_DEADS                       "deads"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der Tode des Spielers seit Einfuehrung dieser Property (irgendwann
+   im Dezember 94)
diff --git a/doc/props/P_DEAF b/doc/props/P_DEAF
index 8745dfd..570ac06 100644
--- a/doc/props/P_DEAF
+++ b/doc/props/P_DEAF
@@ -1,10 +1,23 @@
-NAME:
-    P_DEAF                        "deaf"                        
 
-DEFINIERT IN:
-    /sys/player/comm.h
+P_DEAF
+******
 
-BESCHREIBUNG:
-     Der Spieler ist taub. Falls hier ein String steht, wird dieser bei
-     "teile ... mit" an den Mitteilenden ausgegeben, ansonsten kommt nur
-     "Soundso ist leider gerade taub.\n"
+
+NAME
+====
+
+   P_DEAF                        "deaf"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/comm.h
+
+
+BESCHREIBUNG
+============
+
+   Der Spieler ist taub. Falls hier ein String steht, wird dieser bei
+   "teile ... mit" an den Mitteilenden ausgegeben, ansonsten kommt nur
+   "Soundso ist leider gerade taub.\n"
diff --git a/doc/props/P_DEATH_MSG b/doc/props/P_DEATH_MSG
index 4e044bf..d5de007 100644
--- a/doc/props/P_DEATH_MSG
+++ b/doc/props/P_DEATH_MSG
@@ -1,48 +1,79 @@
-DEFINIERT IN:
-        /sys/living/combat.h
-
-BESCHREIBUNG:
-        In dieser Property kann man ein Array ablegen, das beim Tod eines
-        Spielers ausgewertet und der darin enthaltene String
-        anschliessend auf dem Todeskanal gesendet wird.
-        Der Array muss folgenden Aufbau haben:
-
-          SetProp( P_DEATH_MSG, ({ Text, Flag }) )
-          
-        Text: Der Text kann beliebig eingegeben werde. Allerdings darf 
-              er nicht mit einem '\n' abgeschlossen werden.
-        
-        Flag: Hier kann man drei Arten von Sendemethoden waehlen.
-              1. MSG_SAY      Normales Senden
-              2. MSG_GEMOTE   Genitiv-Emote
-              3. MSG_EMOTE    Emote
-
-
-BEISPIEL:
-        Der Spieler soll direkt nach seinem Tod eine Meldung auf dem 
-        Todeskanal senden.
-        
-        Nachricht auf dem Todes-Kanal:
-	
-        [Tod:Spieler] Ich will keine Beleidsbekundungen!
-        
-        void spieler_stirbt()
-	{
-         this_player()->SetProp( P_DEATH_MSG, ({ "Ich will keine "
-                                        "Beleidsbekundungen!", MSG_SAY}) );
-         this_player()->die();
-        }
-        
-        Nachricht auf dem Todes-Kanal:
-	
-        [Tod:Spieler liebt es zu sterben.]
-        
-        void spieler_stirbt()
-        {
-         this_player()->SetProp( P_DEATH_MSG, ({ "liebt es zu sterben.",
-                                                 MSG_EMOTE }) );
-         this_player()->die();
-        }
-
-SIEHE AUCH:
-        P_MURDER_MSG, P_FORCE_MURDER_MSG
+
+P_DEATH_MSG
+***********
+
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property kann man ein Array ablegen, das beim Tod eines
+   Spielers ausgewertet und der darin enthaltene String
+   anschliessend auf dem Todeskanal gesendet wird.
+   Der Array muss folgenden Aufbau haben:
+
+     SetProp( P_DEATH_MSG, ({ Text, Flag }) )
+
+
+
+   Text: Der Text kann beliebig eingegeben werde. Allerdings darf
+         er nicht mit einem '\n' abgeschlossen werden.
+
+
+
+   Flag: Hier kann man drei Arten von Sendemethoden waehlen.
+         1. MSG_SAY      Normales Senden
+         2. MSG_GEMOTE   Genitiv-Emote
+         3. MSG_EMOTE    Emote
+
+
+BEISPIEL
+========
+
+   Der Spieler soll direkt nach seinem Tod eine Meldung auf dem
+   Todeskanal senden.
+
+
+
+   Nachricht auf dem Todes-Kanal:
+
+
+
+   [Tod:Spieler] Ich will keine Beleidsbekundungen!
+
+
+
+   void spieler_stirbt()
+   {
+    this_player()->SetProp( P_DEATH_MSG, ({ "Ich will keine "
+                                   "Beleidsbekundungen!", MSG_SAY}) );
+    this_player()->die();
+   }
+
+
+
+   Nachricht auf dem Todes-Kanal:
+
+
+
+   [Tod:Spieler liebt es zu sterben.]
+
+
+
+   void spieler_stirbt()
+   {
+    this_player()->SetProp( P_DEATH_MSG, ({ "liebt es zu sterben.",
+                                            MSG_EMOTE }) );
+    this_player()->die();
+   }
+
+
+SIEHE AUCH
+==========
+
+   P_MURDER_MSG, P_FORCE_MURDER_MSG
diff --git a/doc/props/P_DEATH_SPONSORED_BY b/doc/props/P_DEATH_SPONSORED_BY
index 4f86a36..cae8532 100644
--- a/doc/props/P_DEATH_SPONSORED_BY
+++ b/doc/props/P_DEATH_SPONSORED_BY
@@ -1,25 +1,42 @@
-NAME:
-    P_DEATH_SPONSORED_BY          "responsible_wizard_for_death"
 
-DEFINIERT IN:
-    /sys/living/combat.h
+P_DEATH_SPONSORED_BY
+********************
 
-BESCHREIBUNG:
-    Diese Property hat fuer den Spielverlauf keinerlei Bedeutung.
-    Doch gibt es Magier, die ihren Namen gern in /log/KILLS lesen.
-    Wird ein Spieler durch einen Npc getoetet, ist normalerweise der
-    Magier fuer den Tod verantwortlich, in dessen Verzeichnis sich 
-    das Monster befindet. 
-    Doch gibt es nun auch den Fall, dass sich das Monster in einem 
-    Verzeichnis /alle/mon/ befindet, oder der Spieler durch eine
-    Aktion im Raum oder an einem Objekt stirbt.
 
-    Ist in einem solchen Monster, Raum oder Objekt diese Property
-    gesetzt, wird der dort angebene String an das Log-File ueber-
-    geben.
+NAME
+====
 
-BEISPIEL:
-    SetProp(P_DEATH_SPONSORED_BY,"tilly");
- 
+   P_DEATH_SPONSORED_BY          "responsible_wizard_for_death"
 
-Last modified: Don Feb 15 14:01:00 2001 von Tilly
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property hat fuer den Spielverlauf keinerlei Bedeutung.
+   Doch gibt es Magier, die ihren Namen gern in /log/KILLS lesen.
+   Wird ein Spieler durch einen Npc getoetet, ist normalerweise der
+   Magier fuer den Tod verantwortlich, in dessen Verzeichnis sich
+   das Monster befindet.
+   Doch gibt es nun auch den Fall, dass sich das Monster in einem
+   Verzeichnis /alle/mon/ befindet, oder der Spieler durch eine
+   Aktion im Raum oder an einem Objekt stirbt.
+
+   Ist in einem solchen Monster, Raum oder Objekt diese Property
+   gesetzt, wird der dort angebene String an das Log-File ueber-
+   geben.
+
+
+BEISPIEL
+========
+
+   SetProp(P_DEATH_SPONSORED_BY,"tilly");
+
+
+Last modified Don Feb 15 140100 2001 von Tilly
+==============================================
diff --git a/doc/props/P_DEFAULT_GUILD b/doc/props/P_DEFAULT_GUILD
index 28ca4e6..55abd50 100644
--- a/doc/props/P_DEFAULT_GUILD
+++ b/doc/props/P_DEFAULT_GUILD
@@ -1,25 +1,43 @@
-NAME:
-	P_DEFAULT_GUILD			"default_guild"
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_DEFAULT_GUILD
+***************
 
-BESCHREIBUNG:
-	Diese Property enthaelt den Namen der Gilde, welcher der Spieler
-	standardmaessig angehoert. Der Name wird hierbei in Form eines
-	kleingeschriebenen Strings angegeben. Ist P_GUILD gleich Null, so
-	wird bei der Abfrage selbiger Property hierfuer der Eintrag von
-	P_DEFAULT_GUILD eingesetzt.
 
-BEMERKUNGEN:
-	Nach dem ersten Einloggen des Spielers wird ebenfalls dieser Eintrag
-	genutzt, um die Gildenzugehoerigkeit festzulegen. Dies kann dazu
-	genutzt werden, um eine rassenabhaengige Bestimmung der
-	Standardgilde zu gewaehrleisten
-	 (Felinen -> Katzenkrieger, andere Rassen -> Abenteurer).
+NAME
+====
 
-SIEHE AUCH:
-	P_GUILD, P_VISIBLE_GUILD
+   P_DEFAULT_GUILD                 "default_guild"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt den Namen der Gilde, welcher der Spieler
+   standardmaessig angehoert. Der Name wird hierbei in Form eines
+   kleingeschriebenen Strings angegeben. Ist P_GUILD gleich Null, so
+   wird bei der Abfrage selbiger Property hierfuer der Eintrag von
+   P_DEFAULT_GUILD eingesetzt.
+
+
+BEMERKUNGEN
+===========
+
+   Nach dem ersten Einloggen des Spielers wird ebenfalls dieser Eintrag
+   genutzt, um die Gildenzugehoerigkeit festzulegen. Dies kann dazu
+   genutzt werden, um eine rassenabhaengige Bestimmung der
+   Standardgilde zu gewaehrleisten
+    (Felinen -> Katzenkrieger, andere Rassen -> Abenteurer).
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD, P_VISIBLE_GUILD
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_DEFAULT_NOTIFY_FAIL b/doc/props/P_DEFAULT_NOTIFY_FAIL
index 611e8df..351c96c 100644
--- a/doc/props/P_DEFAULT_NOTIFY_FAIL
+++ b/doc/props/P_DEFAULT_NOTIFY_FAIL
@@ -1,8 +1,21 @@
-NAME:
-    P_DEFAULT_NOTIFY_FAIL         "default_notify_fail"         
 
-DEFINIERT IN:
-    /sys/player.h
+P_DEFAULT_NOTIFY_FAIL
+*********************
 
-BESCHREIBUNG:
-     Welche Fehlermeldung kommt, wenn kein Objekt ein notify_fail macht?
+
+NAME
+====
+
+   P_DEFAULT_NOTIFY_FAIL         "default_notify_fail"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Welche Fehlermeldung kommt, wenn kein Objekt ein notify_fail macht?
diff --git a/doc/props/P_DEFENDERS b/doc/props/P_DEFENDERS
index b471d45..a54134a 100644
--- a/doc/props/P_DEFENDERS
+++ b/doc/props/P_DEFENDERS
@@ -1,30 +1,45 @@
-NAME:
-	P_DEFENDERS			"defenders"
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_DEFENDERS
+***********
 
-BESCHREIBUNG:
-	Diese Property wird in Lebewesen gesetzt, welche zum Beispiel durch
-	andere Lebewesen verteidigt werden. Die Verteidiger muessen
-	natuerlich bekannt sein, damit sie per InformDefend() ueber Angriffe
-	informiert werden und per DefendOther() in den laufenden Angriff
-	eingreifen koennen (zum Beispiel Schaeden abwehren oder umwandeln).
-	Es muessen jedoch nicht unbedingt Lebewesen oder echte Verteidiger
-	sein, auch beliebige Objekte koennen ueber Angriffe informiert
-	werden und in diese eingreifen. Allerdings besteht die
-	Einschraenkung, dass diese Objekte in der gleichen Umgebung sein
-	muessen, wie das zu verteidigende Lebewesen oder im zu verteidigenden
-	Lebewesen selbst.
-	Die Objekte, welche dies betrifft, sind in Form eines Arrays in
-	der Property P_DEFENDERS abgelegt.
-	Gesetzt und geloescht werden sollten die Eintraege dieses Arrays
-	jedoch nur mittels der dafuer bereitgestellten Funktionen
-	AddDefender() und RemoveDefender().
 
-SIEHE AUCH:
-	AddDefender(), RemoveDefender(), InformDefend(), DefendOther(),
-	/std/living/combat.c
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_DEFENDERS                     "defenders"
+
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property wird in Lebewesen gesetzt, welche zum Beispiel durch
+   andere Lebewesen verteidigt werden. Die Verteidiger muessen
+   natuerlich bekannt sein, damit sie per InformDefend() ueber Angriffe
+   informiert werden und per DefendOther() in den laufenden Angriff
+   eingreifen koennen (zum Beispiel Schaeden abwehren oder umwandeln).
+   Es muessen jedoch nicht unbedingt Lebewesen oder echte Verteidiger
+   sein, auch beliebige Objekte koennen ueber Angriffe informiert
+   werden und in diese eingreifen. Allerdings besteht die
+   Einschraenkung, dass diese Objekte in der gleichen Umgebung sein
+   muessen, wie das zu verteidigende Lebewesen oder im zu verteidigenden
+   Lebewesen selbst.
+   Die Objekte, welche dies betrifft, sind in Form eines Arrays in
+   der Property P_DEFENDERS abgelegt.
+   Gesetzt und geloescht werden sollten die Eintraege dieses Arrays
+   jedoch nur mittels der dafuer bereitgestellten Funktionen
+   AddDefender() und RemoveDefender().
+
+
+SIEHE AUCH
+==========
+
+   AddDefender(), RemoveDefender(), InformDefend(), DefendOther(),
+   /std/living/combat.c
+
 Last modified: 21.09.2007, Zesstra
diff --git a/doc/props/P_DEFEND_FUNC b/doc/props/P_DEFEND_FUNC
index 02f1e8c..a9939e1 100644
--- a/doc/props/P_DEFEND_FUNC
+++ b/doc/props/P_DEFEND_FUNC
@@ -1,31 +1,50 @@
+
 P_DEFEND_FUNC
+*************
 
-NAME:
-     P_DEFEND_FUNC "defend_func"
 
-DEFINIERT IN:
-     <armour.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Falls ein Objekt eine DefendFunc() fuer die Ruestung definiert, so muss
-     dieses Objekt in dieser Property eingetragen sein.
+   P_DEFEND_FUNC "defend_func"
 
-     Die Auswertung dieser Property erfolgt in QueryDefend().
 
-BEMERKUNGEN:
-     1. Es funktioniert _nicht_ hier eine Closure reinzuschreiben.
-     2. Diese Prop laesst sich _nicht_ sinnvoll mit Set() setzen, also z.B.
-        keine Query-Methoden hier reinzuschreiben.
-     3. Definieren von _set_defend_func() oder Set-Methoden via Set()
-        funktioniert auch nicht, zumindest nicht mit dem gewuenschten
-        Ergebnis. ;-)
-     4. Bei Verwendung bitte Balance-Richtlinien beachten!
+DEFINIERT IN
+============
 
-BEISPIELE:
-     Siehe das Beispiel zu DefendFunc()
+   <armour.h>
 
-SIEHE AUCH:
-     /std/armour.c, DefendFunc(), balance, grenzwerte
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Falls ein Objekt eine DefendFunc() fuer die Ruestung definiert, so muss
+   dieses Objekt in dieser Property eingetragen sein.
+
+   Die Auswertung dieser Property erfolgt in QueryDefend().
+
+
+BEMERKUNGEN
+===========
+
+   1. Es funktioniert _nicht_ hier eine Closure reinzuschreiben.
+   2. Diese Prop laesst sich _nicht_ sinnvoll mit Set() setzen, also z.B.
+      keine Query-Methoden hier reinzuschreiben.
+   3. Definieren von _set_defend_func() oder Set-Methoden via Set()
+      funktioniert auch nicht, zumindest nicht mit dem gewuenschten
+      Ergebnis. ;-)
+   4. Bei Verwendung bitte Balance-Richtlinien beachten!
+
+
+BEISPIELE
+=========
+
+   Siehe das Beispiel zu DefendFunc()
+
+
+SIEHE AUCH
+==========
+
+   /std/armour.c, DefendFunc(), balance, grenzwerte
+
 Last modified: Sat May 18 15:26:17 1996 by Wargon
diff --git a/doc/props/P_DEFUEL_AMOUNT_DRINK b/doc/props/P_DEFUEL_AMOUNT_DRINK
index 558e261..79dcfa5 100644
--- a/doc/props/P_DEFUEL_AMOUNT_DRINK
+++ b/doc/props/P_DEFUEL_AMOUNT_DRINK
@@ -1,20 +1,36 @@
-NAME:
-    P_DEFUEL_AMOUNT_DRINK                          "defuel_amount_drink"
 
-DEFINIERT IN:
-    /sys/defuel.h
+P_DEFUEL_AMOUNT_DRINK
+*********************
 
-BESCHREIBUNG:
-    Enthaelt die rassenabhaengige Enttankvorgabe fuer Trinken.
-    
-SIEHE AUCH:
-     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
-                P_DEFUEL_AMOUNT_FOOD
-     Methoden:  defuel_drink, defuel_food
-     Tanken:    consume, drink_alcohol, drink_soft, eat_food
-     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
-                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-     Konzepte:  heilung, enttanken, food
+
+NAME
+====
+
+   P_DEFUEL_AMOUNT_DRINK                          "defuel_amount_drink"
+
+
+DEFINIERT IN
+============
+
+   /sys/defuel.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die rassenabhaengige Enttankvorgabe fuer Trinken.
+
+
+SIEHE AUCH
+==========
+
+   Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+              P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+              P_DEFUEL_AMOUNT_FOOD
+   Methoden:  defuel_drink, defuel_food
+   Tanken:    consume, drink_alcohol, drink_soft, eat_food
+   Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+              P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+   Konzepte:  heilung, enttanken, food
 
 9. August 2015 Gloinson
diff --git a/doc/props/P_DEFUEL_AMOUNT_FOOD b/doc/props/P_DEFUEL_AMOUNT_FOOD
index a8554be..f61a23e 100644
--- a/doc/props/P_DEFUEL_AMOUNT_FOOD
+++ b/doc/props/P_DEFUEL_AMOUNT_FOOD
@@ -1,20 +1,36 @@
-NAME:
-    P_DEFUEL_AMOUNT_FOOD                          "defuel_amount_food"
 
-DEFINIERT IN:
-    /sys/defuel.h
+P_DEFUEL_AMOUNT_FOOD
+********************
 
-BESCHREIBUNG:
-    Enthaelt die rassenabhaengige Enttankvorgabe fuer Essen.
-    
-SIEHE AUCH:
-     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
-                P_DEFUEL_AMOUNT_DRINK
-     Methoden:  defuel_drink, defuel_food
-     Tanken:    consume, drink_alcohol, drink_soft, eat_food
-     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
-                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-     Konzepte:  heilung, enttanken, food
+
+NAME
+====
+
+   P_DEFUEL_AMOUNT_FOOD                          "defuel_amount_food"
+
+
+DEFINIERT IN
+============
+
+   /sys/defuel.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die rassenabhaengige Enttankvorgabe fuer Essen.
+
+
+SIEHE AUCH
+==========
+
+   Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+              P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+              P_DEFUEL_AMOUNT_DRINK
+   Methoden:  defuel_drink, defuel_food
+   Tanken:    consume, drink_alcohol, drink_soft, eat_food
+   Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+              P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+   Konzepte:  heilung, enttanken, food
 
 9. August 2015 Gloinson
diff --git a/doc/props/P_DEFUEL_LIMIT_DRINK b/doc/props/P_DEFUEL_LIMIT_DRINK
index 0a59df4..d3a2c3c 100644
--- a/doc/props/P_DEFUEL_LIMIT_DRINK
+++ b/doc/props/P_DEFUEL_LIMIT_DRINK
@@ -1,21 +1,37 @@
-NAME:
-    P_DEFUEL_LIMIT_DRINK                          "defuel_limit_drink"
 
-DEFINIERT IN:
-    /sys/defuel.h
+P_DEFUEL_LIMIT_DRINK
+********************
 
-BESCHREIBUNG:
-    Enthaelt die rassenabhaengige minimale Menge an Trinken, ab dem ein
-    Enttankvorgang fuer den Spieler moeglich ist.
-    
-SIEHE AUCH:
-     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-                P_DEFUEL_LIMIT_FOOD,
-                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
-     Methoden:  defuel_drink, defuel_food
-     Tanken:    consume, drink_alcohol, drink_soft, eat_food
-     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
-                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-     Konzepte:  heilung, enttanken, food
+
+NAME
+====
+
+   P_DEFUEL_LIMIT_DRINK                          "defuel_limit_drink"
+
+
+DEFINIERT IN
+============
+
+   /sys/defuel.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die rassenabhaengige minimale Menge an Trinken, ab dem ein
+   Enttankvorgang fuer den Spieler moeglich ist.
+
+
+SIEHE AUCH
+==========
+
+   Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+              P_DEFUEL_LIMIT_FOOD,
+              P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+   Methoden:  defuel_drink, defuel_food
+   Tanken:    consume, drink_alcohol, drink_soft, eat_food
+   Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+              P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+   Konzepte:  heilung, enttanken, food
 
 9. August 2015 Gloinson
diff --git a/doc/props/P_DEFUEL_LIMIT_FOOD b/doc/props/P_DEFUEL_LIMIT_FOOD
index 26e33fd..bb012a3 100644
--- a/doc/props/P_DEFUEL_LIMIT_FOOD
+++ b/doc/props/P_DEFUEL_LIMIT_FOOD
@@ -1,21 +1,37 @@
-NAME:
-    P_DEFUEL_LIMIT_FOOD                          "defuel_limit_food"
 
-DEFINIERT IN:
-    /sys/defuel.h
+P_DEFUEL_LIMIT_FOOD
+*******************
 
-BESCHREIBUNG:
-    Enthaelt die rassenabhaengige minimale Menge an Essen, ab dem ein
-    Enttankvorgang fuer den Spieler moeglich ist.
-    
-SIEHE AUCH:
-     Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-                P_DEFUEL_LIMIT_DRINK,
-                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
-     Methoden:  defuel_drink, defuel_food
-     Tanken:    consume, drink_alcohol, drink_soft, eat_food
-     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
-                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-     Konzepte:  heilung, enttanken, food
+
+NAME
+====
+
+   P_DEFUEL_LIMIT_FOOD                          "defuel_limit_food"
+
+
+DEFINIERT IN
+============
+
+   /sys/defuel.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die rassenabhaengige minimale Menge an Essen, ab dem ein
+   Enttankvorgang fuer den Spieler moeglich ist.
+
+
+SIEHE AUCH
+==========
+
+   Aehnlich:  P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+              P_DEFUEL_LIMIT_DRINK,
+              P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+   Methoden:  defuel_drink, defuel_food
+   Tanken:    consume, drink_alcohol, drink_soft, eat_food
+   Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+              P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+   Konzepte:  heilung, enttanken, food
 
 9. August 2015 Gloinson
diff --git a/doc/props/P_DEFUEL_TIME_DRINK b/doc/props/P_DEFUEL_TIME_DRINK
index de5eaf0..3ff3b74 100644
--- a/doc/props/P_DEFUEL_TIME_DRINK
+++ b/doc/props/P_DEFUEL_TIME_DRINK
@@ -1,21 +1,37 @@
-NAME:
-    P_DEFUEL_TIME_DRINK                          "defuel_time_drink"
 
-DEFINIERT IN:
-    /sys/defuel.h
+P_DEFUEL_TIME_DRINK
+*******************
 
-BESCHREIBUNG:
-    Enthaelt die rassenabhaengige minimale Zeit zwischen einzelnen
-    Enttankvorgaengen fuer Trinken eines Spielers.
-    
-SIEHE AUCH:
-     Aehnlich:  P_DEFUEL_TIME_FOOD,
-                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
-                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
-     Methoden:  defuel_drink, defuel_food
-     Tanken:    consume, drink_alcohol, drink_soft, eat_food
-     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
-                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-     Konzepte:  heilung, enttanken, food
+
+NAME
+====
+
+   P_DEFUEL_TIME_DRINK                          "defuel_time_drink"
+
+
+DEFINIERT IN
+============
+
+   /sys/defuel.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die rassenabhaengige minimale Zeit zwischen einzelnen
+   Enttankvorgaengen fuer Trinken eines Spielers.
+
+
+SIEHE AUCH
+==========
+
+   Aehnlich:  P_DEFUEL_TIME_FOOD,
+              P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+              P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+   Methoden:  defuel_drink, defuel_food
+   Tanken:    consume, drink_alcohol, drink_soft, eat_food
+   Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+              P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+   Konzepte:  heilung, enttanken, food
 
 9. August 2015 Gloinson
diff --git a/doc/props/P_DEFUEL_TIME_FOOD b/doc/props/P_DEFUEL_TIME_FOOD
index d7bdd79..fcd80d0 100644
--- a/doc/props/P_DEFUEL_TIME_FOOD
+++ b/doc/props/P_DEFUEL_TIME_FOOD
@@ -1,21 +1,37 @@
-NAME:
-    P_DEFUEL_TIME_FOOD                          "defuel_time_food"
 
-DEFINIERT IN:
-    /sys/defuel.h
+P_DEFUEL_TIME_FOOD
+******************
 
-BESCHREIBUNG:
-    Enthaelt die rassenabhaengige minimale Zeit zwischen einzelnen
-    Enttankvorgaengen fuer Essen eines Spielers.
-    
-SIEHE AUCH:
-     Aehnlich:  P_DEFUEL_TIME_DRINK,
-                P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
-                P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
-     Methoden:  defuel_drink, defuel_food
-     Tanken:    consume, drink_alcohol, drink_soft, eat_food
-     Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
-                P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
-     Konzepte:  heilung, enttanken, food
+
+NAME
+====
+
+   P_DEFUEL_TIME_FOOD                          "defuel_time_food"
+
+
+DEFINIERT IN
+============
+
+   /sys/defuel.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die rassenabhaengige minimale Zeit zwischen einzelnen
+   Enttankvorgaengen fuer Essen eines Spielers.
+
+
+SIEHE AUCH
+==========
+
+   Aehnlich:  P_DEFUEL_TIME_DRINK,
+              P_DEFUEL_LIMIT_FOOD, P_DEFUEL_LIMIT_DRINK,
+              P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_AMOUNT_DRINK
+   Methoden:  defuel_drink, defuel_food
+   Tanken:    consume, drink_alcohol, drink_soft, eat_food
+   Weitere:   P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP,
+              P_DEFUEL_TIME_FOOD, P_DEFUEL_TIME_DRINK
+   Konzepte:  heilung, enttanken, food
 
 9. August 2015 Gloinson
diff --git a/doc/props/P_DEPARTMSG b/doc/props/P_DEPARTMSG
index 515c8bd..917e01c 100644
--- a/doc/props/P_DEPARTMSG
+++ b/doc/props/P_DEPARTMSG
@@ -1,8 +1,21 @@
-NAME:
-    P_DEPARTMSG                   "departmsg"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_DEPARTMSG
+***********
 
-BESCHREIBUNG:
-     Meldung, mit der ein Transporter ablegt.
+
+NAME
+====
+
+   P_DEPARTMSG                   "departmsg"
+
+
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Meldung, mit der ein Transporter ablegt.
diff --git a/doc/props/P_DESCRIPTION b/doc/props/P_DESCRIPTION
index d275cc7..4d32999 100644
--- a/doc/props/P_DESCRIPTION
+++ b/doc/props/P_DESCRIPTION
@@ -1,8 +1,21 @@
-NAME:
-    P_DESCRIPTION                 "description"                 
 
-DEFINIERT IN:
-    /sys/properties.h
+P_DESCRIPTION
+*************
 
-BESCHREIBUNG:
-     Beschreibung des Spielers
+
+NAME
+====
+
+   P_DESCRIPTION                 "description"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Beschreibung des Spielers
diff --git a/doc/props/P_DESTROY_BAD b/doc/props/P_DESTROY_BAD
index d563af9..94f00e5 100644
--- a/doc/props/P_DESTROY_BAD
+++ b/doc/props/P_DESTROY_BAD
@@ -1,29 +1,52 @@
-NAME:
-     P_DESTROY_BAD                 "std_food_destroy_bad"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_DESTROY_BAD
+*************
 
-BESCHREIBUNG:
-     Speichert den Wert fuer das Verhalten, wenn eine Speise verdirbt.
-     Dieses Verhalten wird in make_bad() umgesetzt.
-     
-     DESTROY_BAD   : Die Speise wird beim Verderben zerstoert
-                     bzw. der Behaelter wird geleert
-     DESTROY_NEVER : Die Speise wird beim Verderben nicht zerstoert
-     pos. Integer  : Anzahl der Sekunden, die zwischen Verderben
-                     und Zerstoeren der Speise liegen sollen
-     
-BEMERKUNGEN:
-     Ist ein positiver Integer-Wert in dieser Property gespeichert, wird nach
-     Ausfuehren der Methode make_bad() nach Ablauf der angegebenen Sekunden
-     ein weiterer Reset ausgeloest, der make_destroy() aufruft.
-     
-DEFAULT:
-     Initial ist diese Property auf DESTROY_BAD gesetzt.
 
-SIEHE AUCH:
-     /std/food.c, wiz/food
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_DESTROY_BAD                 "std_food_destroy_bad"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Speichert den Wert fuer das Verhalten, wenn eine Speise verdirbt.
+   Dieses Verhalten wird in make_bad() umgesetzt.
+
+
+
+   DESTROY_BAD   : Die Speise wird beim Verderben zerstoert
+                   bzw. der Behaelter wird geleert
+   DESTROY_NEVER : Die Speise wird beim Verderben nicht zerstoert
+   pos. Integer  : Anzahl der Sekunden, die zwischen Verderben
+                   und Zerstoeren der Speise liegen sollen
+
+
+BEMERKUNGEN
+===========
+
+   Ist ein positiver Integer-Wert in dieser Property gespeichert, wird nach
+   Ausfuehren der Methode make_bad() nach Ablauf der angegebenen Sekunden
+   ein weiterer Reset ausgeloest, der make_destroy() aufruft.
+
+
+DEFAULT
+=======
+
+   Initial ist diese Property auf DESTROY_BAD gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   /std/food.c, wiz/food
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_DESTRUCT_MSG b/doc/props/P_DESTRUCT_MSG
index 4b7e7e9..334c374 100644
--- a/doc/props/P_DESTRUCT_MSG
+++ b/doc/props/P_DESTRUCT_MSG
@@ -1,8 +1,21 @@
-NAME:
-    P_DESTRUCT_MSG                "destruct_msg"                
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_DESTRUCT_MSG
+**************
 
-BESCHREIBUNG:
-     Meldung, die beim Destructen Obj ausgegegen wird (nur Magier)
+
+NAME
+====
+
+   P_DESTRUCT_MSG                "destruct_msg"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Meldung, die beim Destructen Obj ausgegegen wird (nur Magier)
diff --git a/doc/props/P_DETAILS b/doc/props/P_DETAILS
index e23513a..e14c15c 100644
--- a/doc/props/P_DETAILS
+++ b/doc/props/P_DETAILS
@@ -1,25 +1,44 @@
-NAME:
-    P_DETAILS            "details"
 
-DEFINIERT IN:
-    /sys/thing/description.h
+P_DETAILS
+*********
 
-BESCHREIBUNG:
-    Diese Property enthaelt ein Mapping, in der Details im Objekt
-    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
-    sich diese Details anschaut.
 
-BEMERKUNGEN:
-    Man kann diese Property nicht per SetProp() veraendern, sondern muss die
-    entsprechenden Funktionen nutzen.
-    AddSpecialDetail() und RemoveSpecialDetail() sollten nicht mehr
-    verwendet werden.
+NAME
+====
 
-SIEHE AUCH:
-    Setzen:    AddDetail()
-    Loeschen:  RemoveDetail()
-    Aehnlich:  P_SPECIAL_DETAILS
-    Veraltet:  AddSpecialDetail(), RemoveSpecialDetail()
-    Sonstiges: GetDetail(), break_string()
+   P_DETAILS            "details"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt ein Mapping, in der Details im Objekt
+   definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+   sich diese Details anschaut.
+
+
+BEMERKUNGEN
+===========
+
+   Man kann diese Property nicht per SetProp() veraendern, sondern muss die
+   entsprechenden Funktionen nutzen.
+   AddSpecialDetail() und RemoveSpecialDetail() sollten nicht mehr
+   verwendet werden.
+
+
+SIEHE AUCH
+==========
+
+   Setzen:    AddDetail()
+   Loeschen:  RemoveDetail()
+   Aehnlich:  P_SPECIAL_DETAILS
+   Veraltet:  AddSpecialDetail(), RemoveSpecialDetail()
+   Sonstiges: GetDetail(), break_string()
 
 27. Jan 2013 Gloinson
diff --git a/doc/props/P_DIE_MSG b/doc/props/P_DIE_MSG
index 99f1d7c..0bd5d17 100644
--- a/doc/props/P_DIE_MSG
+++ b/doc/props/P_DIE_MSG
@@ -1,40 +1,56 @@
+
 P_DIE_MSG
+*********
 
-NAME:
-     P_DIE_MSG			"die_msg"
 
-DEFINIERT IN:
-     /sys/properties.h
+NAME
+====
 
-BESCHREIBUNG:
-     In dieser Property uebergibt man einen String, der ausgegeben wird, wenn
-     das Lebewesen stirbt. Ist die Property nicht gesetzt, so wird als String
-     benutzt:
-	" faellt tot zu Boden.\n".
+   P_DIE_MSG                  "die_msg"
 
-     Der Name des Lebewesens wird dem String vor der Ausgabe vorangestellt.
-     Der Satzumbruch am Zeilenende und das Leerzeichen nach dem Namen des
-     Lebewesens muss man selbst angegeben. Es sollte allerdings beachtet
-     werden, dass ein Lebewesen, das durch Gift getoetet wird, eine spezielle
-     nicht zu beeinflussende Meldung erhaelt. Es wird dann als String
-     benutzt:
-	" wird von Gift hinweggerafft und kippt um.\n".
 
-BEISPIELE:
-     Bei einem mitkaempfenden Schatten waere es eher unlogisch, wenn nach
-     dessen 'Tod' eine Leiche zurueckbliebe. Eine logische Konsequenz waere
-     folgende Meldung:
-	SetProp(P_DIE_MSG," loest sich auf.\n");
-	SetProp(P_NOCORPSE,1);
+DEFINIERT IN
+============
 
-     Damit dann auch wirklich keine Leiche zurueckbleibt, wird zusaetzlich
-     die Property P_NOCORPSE gesetzt.
+   /sys/properties.h
 
-SIEHE AUCH:
-     Tod:		die(L)
-     Todesmeldungen:	P_KILL_NAME, P_KILL_MSG, P_MURDER_MSG
-			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
-     Sonstiges:		P_CORPSE, P_NOCORPSE, /std/corpse.c
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   In dieser Property uebergibt man einen String, der ausgegeben wird, wenn
+   das Lebewesen stirbt. Ist die Property nicht gesetzt, so wird als String
+   benutzt:
+      " faellt tot zu Boden.\n".
+
+   Der Name des Lebewesens wird dem String vor der Ausgabe vorangestellt.
+   Der Satzumbruch am Zeilenende und das Leerzeichen nach dem Namen des
+   Lebewesens muss man selbst angegeben. Es sollte allerdings beachtet
+   werden, dass ein Lebewesen, das durch Gift getoetet wird, eine spezielle
+   nicht zu beeinflussende Meldung erhaelt. Es wird dann als String
+   benutzt:
+      " wird von Gift hinweggerafft und kippt um.\n".
+
+
+BEISPIELE
+=========
+
+   Bei einem mitkaempfenden Schatten waere es eher unlogisch, wenn nach
+   dessen 'Tod' eine Leiche zurueckbliebe. Eine logische Konsequenz waere
+   folgende Meldung:
+      SetProp(P_DIE_MSG," loest sich auf.\n");
+      SetProp(P_NOCORPSE,1);
+
+   Damit dann auch wirklich keine Leiche zurueckbleibt, wird zusaetzlich
+   die Property P_NOCORPSE gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   Tod:               die(L)
+   Todesmeldungen:    P_KILL_NAME, P_KILL_MSG, P_MURDER_MSG
+                      P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+   Sonstiges:         P_CORPSE, P_NOCORPSE, /std/corpse.c
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_DISABLE_ATTACK b/doc/props/P_DISABLE_ATTACK
index 25e051d..37544ae 100644
--- a/doc/props/P_DISABLE_ATTACK
+++ b/doc/props/P_DISABLE_ATTACK
@@ -1,46 +1,64 @@
-NAME:
-    P_DISABLE_ATTACK              "disable_attack"              
 
-DEFINIERT IN:
-    /sys/properties.h
+P_DISABLE_ATTACK
+****************
 
-BESCHREIBUNG:
-    Das Lebewesen kann nicht angreifen. Beim Setzen der Property ist es
-    wichtig, SetProp() zu benutzen und die Anzahl der Kampfrunden anzugeben,
-    die das Lebewesen paralysiert sein soll.
 
-    Ein negativer Wert ist nicht gueltig. Bei mehr als 30 Kampfrunden wird
-    die Paralyse auf 30 Kampfrunden gekappt.
+NAME
+====
 
-    Fuer jede Paralyse bekommt ein Living eine ebenso lange Schutzzeit nach
-    der Paralyse gewaehrt. Versucht man, vor Ablauf der Paralyse
-    P_DISABLE_ATTACK hoeher zu setzen (oder setzt man innerhalb der folgenden
-    Schutzzeit P_DISABLE_ATTACK auf > 0), wird DISABLE_TOO_EARLY von SetProp
-    zurueck gegeben.
-    Eine Reduktion von einem P_DISABLE_ATTACK ist moeglich, allerdings
-    reduziert dies _nicht_ eine einmal gesetzte Schutzzeit.
+   P_DISABLE_ATTACK              "disable_attack"
 
-    Einen Gegner,der nie paralysiert werden koennen soll, kann man einfach
-    per 
 
-    Set(P_DISABLE_ATTACK, function int () {return 0;}, F_SET_METHOD);
+DEFINIERT IN
+============
 
-    erstellen, da bei diesem der Wert von P_DISABLE_ATTACK nicht mehr mit
-    einem normalen SetProp()-Aufruf geaendert werden kann.
+   /sys/properties.h
 
-BEISPIELE:
-    // Gegner 17 Runden lang paralysieren, ohne Ruecksicht auf fruehere P.
-    // (in diesem Moment ist das Living bis time() + 4 * 17 vor laengerer
-    //  oder erneuter Paralyse geschuetzt)
-    en->SetProp(P_DISABLE_ATTACK, 17);
-    // Der Gegner kann jetzt fuer 34 Kampfrunden nicht erneut paralysiert
-    // werden.
-    // Paralyse reduzieren auf 10 Kampfrunden
-    en->SetProp(P_DISABLE_ATTACK, 10);
-    // Die Schutzzeit ist immer noch bei 34 Kampfrunden, nicht bei 20.
 
-SIEHE AUCH:
-    P_NEXT_DISABLE_ATTACK
+BESCHREIBUNG
+============
+
+   Das Lebewesen kann nicht angreifen. Beim Setzen der Property ist es
+   wichtig, SetProp() zu benutzen und die Anzahl der Kampfrunden anzugeben,
+   die das Lebewesen paralysiert sein soll.
+
+   Ein negativer Wert ist nicht gueltig. Bei mehr als 30 Kampfrunden wird
+   die Paralyse auf 30 Kampfrunden gekappt.
+
+   Fuer jede Paralyse bekommt ein Living eine ebenso lange Schutzzeit nach
+   der Paralyse gewaehrt. Versucht man, vor Ablauf der Paralyse
+   P_DISABLE_ATTACK hoeher zu setzen (oder setzt man innerhalb der folgenden
+   Schutzzeit P_DISABLE_ATTACK auf > 0), wird DISABLE_TOO_EARLY von SetProp
+   zurueck gegeben.
+   Eine Reduktion von einem P_DISABLE_ATTACK ist moeglich, allerdings
+   reduziert dies _nicht_ eine einmal gesetzte Schutzzeit.
+
+   Einen Gegner,der nie paralysiert werden koennen soll, kann man einfach
+   per
+
+   Set(P_DISABLE_ATTACK, function int () {return 0;}, F_SET_METHOD);
+
+   erstellen, da bei diesem der Wert von P_DISABLE_ATTACK nicht mehr mit
+   einem normalen SetProp()-Aufruf geaendert werden kann.
+
+
+BEISPIELE
+=========
+
+   // Gegner 17 Runden lang paralysieren, ohne Ruecksicht auf fruehere P.
+   // (in diesem Moment ist das Living bis time() + 4 * 17 vor laengerer
+   //  oder erneuter Paralyse geschuetzt)
+   en->SetProp(P_DISABLE_ATTACK, 17);
+   // Der Gegner kann jetzt fuer 34 Kampfrunden nicht erneut paralysiert
+   // werden.
+   // Paralyse reduzieren auf 10 Kampfrunden
+   en->SetProp(P_DISABLE_ATTACK, 10);
+   // Die Schutzzeit ist immer noch bei 34 Kampfrunden, nicht bei 20.
+
+
+SIEHE AUCH
+==========
+
+   P_NEXT_DISABLE_ATTACK
 
 19.08.2014, Zesstra
-
diff --git a/doc/props/P_DISABLE_COMMANDS b/doc/props/P_DISABLE_COMMANDS
index f0318e0..e66910a 100644
--- a/doc/props/P_DISABLE_COMMANDS
+++ b/doc/props/P_DISABLE_COMMANDS
@@ -1,74 +1,100 @@
+
 P_DISABLE_COMMANDS
+******************
 
-NAME:
-     P_DISABLE_COMMANDS             "p_lib_disablecommands"
 
-DEFINIERT IN:
-     /sys/player/command.h
+NAME
+====
 
-BESCHREIBUNG:
-    Mit dieser Prop kann man verhindern, dass Kommandos eines Spielers
-    verarbeitet werden. Dies ist z.B. in Sequenzen nuetzlich, wo der Spieler
-    rein passiv konsumieren soll.
-    In diese Property muss ein Array mit 2 oder 3 Elementen geschrieben 
-    werden:
-       1) Endzeitpunkt in Sekunden seit 1.1.1970 (int)
-       2) Meldung (String oder Closure)
-       3) (optional) Array von trotzdem erlaubten Verben (string*)
-         (nur ausgewertet, wenn die Meldung ein String ist)
-    
-    Ist die Meldung ein String, wird dieser einfach bei jedem Kommando so wie
-    er ist an den Spieler ausgegeben und das Kommando abgebrochen.
-    Ist die Meldung eine Closure wird diese bei jedem Kommando aufgerufen und
-    das Kommando abgebrochen, wenn sie einen Rueckgabewert != 0 zurueckgibt.
-    In diesem Fall ist die gerufene Funktion dafuer verantwortlich, geeignete
-    Meldungen an den Spieler auszugeben!
-    Der Funktion wird der vom Spieler eingebene Befehl (string) als erstes
-    Argument uebergeben. Zu diesem Zeitpunkt wurde alle Aliase schon
-    ausgewertet. Die Funktion kann den Kommandogeber via this_player()
-    ermitteln.
-    Fuer weitere Informationen steht auch command_stack() zur Verfuegung,
-    allerdings ist dort die Alias-Ersetzung nicht beruecksichtigt.
+   P_DISABLE_COMMANDS             "p_lib_disablecommands"
 
-    Die Ausnahmeliste wird nur fuer simple Strings als Meldung ausgewertet,
-    wird eine Closure verwendet, kann diese besser selber die Ausnahmen
-    bestimmen.
-    
-    Fragt man diese Prop ab, erhaelt man ein Array mit 4 Elementen: setzendes
-    Objekt (object), Ablaufzeit (int), Meldung (String oder Closure) und
-    Liste von Ausnahmen (string*).
 
-BEMERKUNGEN:
-    1. Die Prop wird fuer Magier mit eingeschaltetem P_WANTS_TO_LEARN
-       ignoriert.
-    2. Wenn das Objekt zerstoert wird, was die Prop gesetzt hat, wird der
-       Eintrag unwirksam.
-    3. Wenn diese Prop gesetzt und nicht abgelaufen ist, kann nur das gleiche
-       Objekt sie mit neuen Daten ueberschreiben. Alle anderen Objekte koennen
-       die Prop nur loeschen. Dies soll verhindern, dass Magier unabsichtlich
-       einfach anderer Leute Eintraege ueberschreiben. Dementsprechend: Lasst
-       die Finger davon, wenn die schon gesetzt ist. ;-)
-    4. Diese Prop darf _ausschliesslich_ mit SetProp() und QueryProp() benutzt
-       werden, Set() und Query() funktionieren _nicht_.
-    5. Es gibt einige Verben, die NIE blockiert werden. Zur Zeit sind dies
-       "mrufe", "mschau", "bug", "idee", "typo" und "detail".
-    6. Bitte nicht missbrauchen, speziell nicht dazu, die Kommandos von
-       Spieler zu ueberwachen/mitzuschreiben. Das Setzen dieser Prop wird 
-       geloggt.
+DEFINIERT IN
+============
 
-BEISPIEL:
+   /sys/player/command.h
+
+
+BESCHREIBUNG
+============
+
+   Mit dieser Prop kann man verhindern, dass Kommandos eines Spielers
+   verarbeitet werden. Dies ist z.B. in Sequenzen nuetzlich, wo der Spieler
+   rein passiv konsumieren soll.
+   In diese Property muss ein Array mit 2 oder 3 Elementen geschrieben
+   werden:
+      1) Endzeitpunkt in Sekunden seit 1.1.1970 (int)
+      2) Meldung (String oder Closure)
+      3) (optional) Array von trotzdem erlaubten Verben (string*)
+        (nur ausgewertet, wenn die Meldung ein String ist)
+
+
+
+   Ist die Meldung ein String, wird dieser einfach bei jedem Kommando so wie
+   er ist an den Spieler ausgegeben und das Kommando abgebrochen.
+   Ist die Meldung eine Closure wird diese bei jedem Kommando aufgerufen und
+   das Kommando abgebrochen, wenn sie einen Rueckgabewert != 0 zurueckgibt.
+   In diesem Fall ist die gerufene Funktion dafuer verantwortlich, geeignete
+   Meldungen an den Spieler auszugeben!
+   Der Funktion wird der vom Spieler eingebene Befehl (string) als erstes
+   Argument uebergeben. Zu diesem Zeitpunkt wurde alle Aliase schon
+   ausgewertet. Die Funktion kann den Kommandogeber via this_player()
+   ermitteln.
+   Fuer weitere Informationen steht auch command_stack() zur Verfuegung,
+   allerdings ist dort die Alias-Ersetzung nicht beruecksichtigt.
+
+   Die Ausnahmeliste wird nur fuer simple Strings als Meldung ausgewertet,
+   wird eine Closure verwendet, kann diese besser selber die Ausnahmen
+   bestimmen.
+
+
+
+   Fragt man diese Prop ab, erhaelt man ein Array mit 4 Elementen: setzendes
+   Objekt (object), Ablaufzeit (int), Meldung (String oder Closure) und
+   Liste von Ausnahmen (string*).
+
+
+BEMERKUNGEN
+===========
+
+   1. Die Prop wird fuer Magier mit eingeschaltetem P_WANTS_TO_LEARN
+      ignoriert.
+   2. Wenn das Objekt zerstoert wird, was die Prop gesetzt hat, wird der
+      Eintrag unwirksam.
+   3. Wenn diese Prop gesetzt und nicht abgelaufen ist, kann nur das gleiche
+      Objekt sie mit neuen Daten ueberschreiben. Alle anderen Objekte koennen
+      die Prop nur loeschen. Dies soll verhindern, dass Magier unabsichtlich
+      einfach anderer Leute Eintraege ueberschreiben. Dementsprechend: Lasst
+      die Finger davon, wenn die schon gesetzt ist. ;-)
+   4. Diese Prop darf _ausschliesslich_ mit SetProp() und QueryProp() benutzt
+      werden, Set() und Query() funktionieren _nicht_.
+   5. Es gibt einige Verben, die NIE blockiert werden. Zur Zeit sind dies
+      "mrufe", "mschau", "bug", "idee", "typo" und "detail".
+   6. Bitte nicht missbrauchen, speziell nicht dazu, die Kommandos von
+      Spieler zu ueberwachen/mitzuschreiben. Das Setzen dieser Prop wird
+      geloggt.
+
+
+BEISPIEL
+========
+
    In einem Raum startet eine Sequenz, in der der Spieler nichts machen soll:
 
    if (!pl->QueryProp(P_DISABLE_COMMANDS))
       pl->SetProp(P_DISABLE_COMMANDS,
             ({ time() + 120, "Du bist tief in Deinem Traum gefangen!\n" }) );
    else // ... Fehlerbehandlung, falls Prop schon gesetzt ...
-   
+
+
+
    Soll die Prop aus irgendeinem Grund (vorzeitig) geloescht werden:
    pl->SetProp(P_DISABLE_COMMANDS, 0);
 
-SIEHE AUCH:
-     command(), query_command(), command_stack(), modify_command(), 
-     this_player()
+
+SIEHE AUCH
+==========
+
+   command(), query_command(), command_stack(), modify_command(),
+   this_player()
 
 01.12.2012, Zesstra
diff --git a/doc/props/P_DISTRIBUTION b/doc/props/P_DISTRIBUTION
index 529c53e..51140ae 100644
--- a/doc/props/P_DISTRIBUTION
+++ b/doc/props/P_DISTRIBUTION
@@ -1,16 +1,31 @@
-NAME:
-     P_DISTRIBUTION                "std_food_distribution"
-
-DEFINIERT IN:
-     /sys/food.h
-
-BESCHREIBUNG:
-     Verteilung der Heilung ueber mehrere Heartbeats.
-     Dieser Wert wird im entry_info als H_DISTRIBUTION dem consume() im
-     Living uebergeben.
-     
-SIEHE AUCH:
-     consume
-
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+
+P_DISTRIBUTION
+**************
+
+
+NAME
+====
+
+   P_DISTRIBUTION                "std_food_distribution"
+
+
+DEFINIERT IN
+============
+
+   /sys/food.h
+
+
+BESCHREIBUNG
+============
+
+   Verteilung der Heilung ueber mehrere Heartbeats.
+   Dieser Wert wird im entry_info als H_DISTRIBUTION dem consume() im
+   Living uebergeben.
+
+
+SIEHE AUCH
+==========
+
+   consume
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_DMSG b/doc/props/P_DMSG
index f43fbb4..40af065 100644
--- a/doc/props/P_DMSG
+++ b/doc/props/P_DMSG
@@ -1,8 +1,21 @@
-NAME:
-    P_DMSG                        "destmsg"                     
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_DMSG
+******
 
-BESCHREIBUNG:
-     *** OBSOLET! *** Siehe P_DESTRUCT_MSG
+
+NAME
+====
+
+   P_DMSG                        "destmsg"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   *** OBSOLET! *** Siehe P_DESTRUCT_MSG
diff --git a/doc/props/P_DOMAIN b/doc/props/P_DOMAIN
index 80fd1f7..aad5288 100644
--- a/doc/props/P_DOMAIN
+++ b/doc/props/P_DOMAIN
@@ -1,31 +1,50 @@
-NAME:
-    P_DOMAIN                                        "lib_p_domain"
 
-DEFINIERT IN:
-    /sys/room/description.h
+P_DOMAIN
+********
 
-BESCHREIBUNG:
-     Diese Property enthaelt die Region, in der ein Raum liegt, sofern er
-     in /d/ liegt.
 
-     Falls ein Raum nicht in /d/ liegt, aber es eigentlich ein Gebiet ist,
-     welches eindeutig in einer Region zugeordnet ist, kann der Magier
-     hier gezielt einen anderen Wert setzen.
-     
-     Bitte keine Regionen faelschen!
+NAME
+====
 
-BEISPIEL:
-     In /d/inseln/zesstra/vulkanweg/room/r1 liefert
-     QueryProp(P_DOMAIN)
-     ein "Inseln" zurueck.
+   P_DOMAIN                                        "lib_p_domain"
 
-     In einem Raum der Chaosgilde:
-     SetProp(P_DOMAIN, "Polar");
-     damit der Raum als Raum der Region Polar angezeigt wird.
 
-SIEHE AUCH:
-     gmcp
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt die Region, in der ein Raum liegt, sofern er
+   in /d/ liegt.
+
+   Falls ein Raum nicht in /d/ liegt, aber es eigentlich ein Gebiet ist,
+   welches eindeutig in einer Region zugeordnet ist, kann der Magier
+   hier gezielt einen anderen Wert setzen.
+
+
+
+   Bitte keine Regionen faelschen!
+
+
+BEISPIEL
+========
+
+   In /d/inseln/zesstra/vulkanweg/room/r1 liefert
+   QueryProp(P_DOMAIN)
+   ein "Inseln" zurueck.
+
+   In einem Raum der Chaosgilde:
+   SetProp(P_DOMAIN, "Polar");
+   damit der Raum als Raum der Region Polar angezeigt wird.
+
+
+SIEHE AUCH
+==========
+
+   gmcp
+
 23.02.2013, Zesstra
-
diff --git a/doc/props/P_DOOR_INFOS b/doc/props/P_DOOR_INFOS
index 8b5f71b..dc393da 100644
--- a/doc/props/P_DOOR_INFOS
+++ b/doc/props/P_DOOR_INFOS
@@ -1,44 +1,58 @@
-NAME:
-    P_DOOR_INFOS                  "door_infos"
 
-DEFINIERT IN:
-    /sys/doorroom.h
-
-BESCHREIBUNG:
-    Mapping mit Informationen ueber eine im Raum per NewDoor() definierte
-    Tuer. Diese Infos werden ueber /std/room/doors.c an den /obj/doormaster.c
-    weitergegeben und dem Raum, der die Tuer besitzt, als Property gesetzt.
-    Werden mehrere Tueren in einem Raum eingebunden, enthaelt das Mapping
-    entsprechend viele Eintraege.
-
-    Dieses Mapping dient zur internen Verwaltung der Tueren im
-    /obj/doormaster.c und sollte nicht per Hand veraendert werden!
-
-    Die Eintraege im Mapping haben folgende keys (definiert in
-    /sys/doorroom.h):
-
-    D_DEST : Zielraum (string)
-    D_CMDS : Befehl(e), um durch die Tuer zu gehen (string oder *string)
-    D_IDS  : IDs der Tuer (string oder *string)
-    D_FLAGS : Besondere Eigenschaften der Tuer (Tuer braucht Schluessel etc.)
-    D_LONG  : Langbeschreibung (string)
-    D_SHORT : Kurzbeschreibung (string)
-    D_NAME  : Name (string oder *string)
-    D_GENDER  : Geschlecht
-    D_FUNC    : Funktion, die VOR dem Durchschreiten der Tuer aufgerufen wird
-    D_MSGS    : Bewegungsmeldungen
-    D_FUNC2   : Funktion, die NACH dem Durchschreiten der Tuer aufgerufen wird
-    D_TESTFUNC  : Funktion die im Sartraum testet, ob die Tuer durchschritten
-                  werden darf
-    D_RESET_MSG : Meldungen beim Tuer-Reset
-    D_OPEN_WITH_MOVE : Falls gesetzt, wird die Tuer auch mit dem
-                       Bewegungsbefehl geoeffnet und durchschritten, falls
-                       Oeffnen erfolgreich
+P_DOOR_INFOS
+************
 
 
-SIEHE AUCH:
-    NewDoor(), QueryDoorKey(), QueryDoorStatus(), SetDoorStatus(),
-    /std/room/doors.c, /obj/doormaster.c, GetPhiolenInfos(), QueryAllDoors()
+NAME
+====
 
------------------------------------------------------------------------------
+   P_DOOR_INFOS                  "door_infos"
+
+
+DEFINIERT IN
+============
+
+   /sys/doorroom.h
+
+
+BESCHREIBUNG
+============
+
+   Mapping mit Informationen ueber eine im Raum per NewDoor() definierte
+   Tuer. Diese Infos werden ueber /std/room/doors.c an den /obj/doormaster.c
+   weitergegeben und dem Raum, der die Tuer besitzt, als Property gesetzt.
+   Werden mehrere Tueren in einem Raum eingebunden, enthaelt das Mapping
+   entsprechend viele Eintraege.
+
+   Dieses Mapping dient zur internen Verwaltung der Tueren im
+   /obj/doormaster.c und sollte nicht per Hand veraendert werden!
+
+   Die Eintraege im Mapping haben folgende keys (definiert in
+   /sys/doorroom.h):
+
+   D_DEST : Zielraum (string)
+   D_CMDS : Befehl(e), um durch die Tuer zu gehen (string oder *string)
+   D_IDS  : IDs der Tuer (string oder *string)
+   D_FLAGS : Besondere Eigenschaften der Tuer (Tuer braucht Schluessel etc.)
+   D_LONG  : Langbeschreibung (string)
+   D_SHORT : Kurzbeschreibung (string)
+   D_NAME  : Name (string oder *string)
+   D_GENDER  : Geschlecht
+   D_FUNC    : Funktion, die VOR dem Durchschreiten der Tuer aufgerufen wird
+   D_MSGS    : Bewegungsmeldungen
+   D_FUNC2   : Funktion, die NACH dem Durchschreiten der Tuer aufgerufen wird
+   D_TESTFUNC  : Funktion die im Sartraum testet, ob die Tuer durchschritten
+                 werden darf
+   D_RESET_MSG : Meldungen beim Tuer-Reset
+   D_OPEN_WITH_MOVE : Falls gesetzt, wird die Tuer auch mit dem
+                      Bewegungsbefehl geoeffnet und durchschritten, falls
+                      Oeffnen erfolgreich
+
+
+SIEHE AUCH
+==========
+
+   NewDoor(), QueryDoorKey(), QueryDoorStatus(), SetDoorStatus(),
+   /std/room/doors.c, /obj/doormaster.c, GetPhiolenInfos(), QueryAllDoors()
+
 Letzte Aenderung: Don, 08.05.2014, Gabylon
diff --git a/doc/props/P_DO_DESTRUCT b/doc/props/P_DO_DESTRUCT
index 7e9a230..6aa9384 100644
--- a/doc/props/P_DO_DESTRUCT
+++ b/doc/props/P_DO_DESTRUCT
@@ -1,17 +1,36 @@
-NAME:
-    P_DO_DESTRUCT                 "do_destruct"                 
 
-DEFINIERT IN:
-    /sys/properties.h
+P_DO_DESTRUCT
+*************
 
-BESCHREIBUNG:
-     Flag, ob sich die Lichtquelle am Ende der Leuchtzeit selbst
-     zerstoert. 
 
-SIEHE AUCH:
-     Basisklassen: /std/lightsource.c
-     Properties: P_FUEL, P_LIGHTDESC, P_LIGHT
-     Methoden: AddFuel(L)
+NAME
+====
 
-LETZTE AENDERUNG:
-    22. Dez. 2015, Arathorn
+   P_DO_DESTRUCT                 "do_destruct"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Flag, ob sich die Lichtquelle am Ende der Leuchtzeit selbst
+   zerstoert.
+
+
+SIEHE AUCH
+==========
+
+   Basisklassen: /std/lightsource.c
+   Properties: P_FUEL, P_LIGHTDESC, P_LIGHT
+   Methoden: AddFuel(L)
+
+
+LETZTE AENDERUNG
+================
+
+   22. Dez. 2015, Arathorn
diff --git a/doc/props/P_DRINK b/doc/props/P_DRINK
index f2fe982..028e987 100644
--- a/doc/props/P_DRINK
+++ b/doc/props/P_DRINK
@@ -1,25 +1,39 @@
-NAME:
-     P_DRINK                       "drink"
 
-DEFINIERT IN:
-     /sys/living/life.h
+P_DRINK
+*******
 
-BESCHREIBUNG:
 
-     - Lebewesen
-       Numerischer Wert fuer den Saettigungsgrad eines Lebewesens mit
-       Getraenken. Der maximale Wert steht in P_MAX_DRINK.
+NAME
+====
 
-     - Speisen/Kneipen
-       Numerischer Wert fuer den Saettigungsgrad einer Portion eines
-       Getraenkes. Ist diese Property nicht gesetzt oder zusaetzlich
-       P_FOOD gesetzt, kann man diese Speise nicht trinken. Eine
-       funktionierende Speise _muss_ entweder P_FOOD oder P_DRINK
-       groesser 0 gesetzt haben.
-     
-SIEHE AUCH:
-     P_MAX_DRINK, P_DRINK_DELAY, consume
-     P_FOOD, P_ALCOHOL, wiz/food
+   P_DRINK                       "drink"
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   - Lebewesen
+     Numerischer Wert fuer den Saettigungsgrad eines Lebewesens mit
+     Getraenken. Der maximale Wert steht in P_MAX_DRINK.
+
+   - Speisen/Kneipen
+     Numerischer Wert fuer den Saettigungsgrad einer Portion eines
+     Getraenkes. Ist diese Property nicht gesetzt oder zusaetzlich
+     P_FOOD gesetzt, kann man diese Speise nicht trinken. Eine
+     funktionierende Speise _muss_ entweder P_FOOD oder P_DRINK
+     groesser 0 gesetzt haben.
+
+
+SIEHE AUCH
+==========
+
+   P_MAX_DRINK, P_DRINK_DELAY, consume
+   P_FOOD, P_ALCOHOL, wiz/food
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_DRINK_DELAY b/doc/props/P_DRINK_DELAY
index 0118843..1617b47 100644
--- a/doc/props/P_DRINK_DELAY
+++ b/doc/props/P_DRINK_DELAY
@@ -1,10 +1,23 @@
-NAME:
-    P_DRINK_DELAY                 "drink_delay"                     
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_DRINK_DELAY
+*************
 
-BESCHREIBUNG:
-     Anzahl der heart_beats, bis P_DRINK um einen Punkt sinkt.
-     Aenderungen dieser Property in Spielern beduerfen der 
-     Genehmigung des EM fuer Balance.
+
+NAME
+====
+
+   P_DRINK_DELAY                 "drink_delay"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der heart_beats, bis P_DRINK um einen Punkt sinkt.
+   Aenderungen dieser Property in Spielern beduerfen der
+   Genehmigung des EM fuer Balance.
diff --git a/doc/props/P_DRINK_FULL_MSG b/doc/props/P_DRINK_FULL_MSG
index 2903af3..1e5c2ce 100644
--- a/doc/props/P_DRINK_FULL_MSG
+++ b/doc/props/P_DRINK_FULL_MSG
@@ -1,24 +1,45 @@
-NAME:
-     P_DRINK_FULL_MSG              "std_food_drink_full_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_DRINK_FULL_MSG
+****************
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn ein Getraenk getrunken werden soll,
-     obwohl dieser nichts mehr trinken kann.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "So viel kannst Du im Moment nicht trinken."
 
-SIEHE AUCH:
-     P_DRINK, P_MAX_DRINK, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_DRINK_FULL_MSG              "std_food_drink_full_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn ein Getraenk getrunken werden soll,
+   obwohl dieser nichts mehr trinken kann.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "So viel kannst Du im Moment nicht trinken."
+
+
+SIEHE AUCH
+==========
+
+   P_DRINK, P_MAX_DRINK, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_DROP_MSG b/doc/props/P_DROP_MSG
index 5a4c9d7..9ccb875 100644
--- a/doc/props/P_DROP_MSG
+++ b/doc/props/P_DROP_MSG
@@ -1,62 +1,96 @@
+
 P_DROP_MSG
-NAME:
-     P_DROP_MSG				"drop_message" 
+**********
 
-DEFINIERT IN:
-     /sys/living/put_and_get.h
 
-BESCHREIBUNG:
-     Mit P_DROP_MSG kann man die Meldung, die man beim Ablegen eines
-     Objektes bekommt, modifizieren.
+NAME
+====
 
-     Folgende Werte sind moeglich:
-	
-     o 0
-       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung. 
-	  
-     o NO_PNG_MSG       == -1
-       Es wird keinerlei Meldung ausgegeben
-	  
-     o Ein Array aus Strings 
-       Der erste String wird an den Spieler ausgegeben, der zweite 
-       (optionale) an den Raum. 
-	  
-       Die Strings werden durch die Funktion replace_personal() geparst.
-	Objekt1 - Spieler
-        Objekt2 - das Objekt, das fallengelassen wird
-	  
-       Wird der zweite String nicht angegeben, erfolgt keine Meldung an
-       den Raum.
-				
-BEISPIEL:
-     void create() {
-      ...
-      SetProp( P_SHORT, "Ugars Handaxt" );
-      SetProp( P_LONG, break_string(
-       "Dieses ist eine Kampfaxt, wie sie Orks normalerweise benutzen. "
-       "Da Du Zeit hast, sie Dir anzuschauen, ist der Besitzer wohl "
-       "bereits bei Lars.",78 ));
-	  
-      SetProp( P_NAME, "Axt" );
-      AddId( ({"handaxt","axt"}) );
-      SetProp( P_GENDER, FEMALE );
-	  
-      SetProp( P_DROP_MSG, ({
-       "Du schmeisst @WEN2 hin.",
-       "@WER1 schmeisst Dir @WENU2 vor die Fuesse.\n"}));
-      ...
-     }
+   P_DROP_MSG                         "drop_message"
 
-     Will Ugar seine Axt ablegen und gibt "lasse axt fallen" ein, werden 
-     folgende Meldungen ausgegeben:
-	
-     Ugar: "Du schmeisst die Axt hin."
-     Raum: "Ugar schmeisst Dir eine Axt vor die Fuesse."
-	
-SIEHE AUCH:
-     Aehnliches: P_PICK_MSG, P_PUT_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
-     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
-                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Sonstiges:  replace_personal(E), drop_obj(L), /std/living/put_and_get.c
+
+DEFINIERT IN
+============
+
+   /sys/living/put_and_get.h
+
+
+BESCHREIBUNG
+============
+
+   Mit P_DROP_MSG kann man die Meldung, die man beim Ablegen eines
+   Objektes bekommt, modifizieren.
+
+   Folgende Werte sind moeglich:
+
+
+
+   o 0
+     Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
+
+
+
+   o NO_PNG_MSG       == -1
+     Es wird keinerlei Meldung ausgegeben
+
+
+
+   o Ein Array aus Strings
+     Der erste String wird an den Spieler ausgegeben, der zweite
+     (optionale) an den Raum.
+
+
+
+     Die Strings werden durch die Funktion replace_personal() geparst.
+      Objekt1 - Spieler
+      Objekt2 - das Objekt, das fallengelassen wird
+
+
+
+     Wird der zweite String nicht angegeben, erfolgt keine Meldung an
+     den Raum.
+
+
+BEISPIEL
+========
+
+   void create() {
+    ...
+    SetProp( P_SHORT, "Ugars Handaxt" );
+    SetProp( P_LONG, break_string(
+     "Dieses ist eine Kampfaxt, wie sie Orks normalerweise benutzen. "
+     "Da Du Zeit hast, sie Dir anzuschauen, ist der Besitzer wohl "
+     "bereits bei Lars.",78 ));
+
+
+
+    SetProp( P_NAME, "Axt" );
+    AddId( ({"handaxt","axt"}) );
+    SetProp( P_GENDER, FEMALE );
+
+
+
+    SetProp( P_DROP_MSG, ({
+     "Du schmeisst @WEN2 hin.",
+     "@WER1 schmeisst Dir @WENU2 vor die Fuesse.\n"}));
+    ...
+   }
+
+   Will Ugar seine Axt ablegen und gibt "lasse axt fallen" ein, werden
+   folgende Meldungen ausgegeben:
+
+
+
+   Ugar: "Du schmeisst die Axt hin."
+   Raum: "Ugar schmeisst Dir eine Axt vor die Fuesse."
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_PICK_MSG, P_PUT_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
+   Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+               P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Sonstiges:  replace_personal(E), drop_obj(L), /std/living/put_and_get.c
 
 14. Maerz 2004 Gloinson
diff --git a/doc/props/P_EARMUFFS b/doc/props/P_EARMUFFS
index 97e6b1c..e5b4bbb 100644
--- a/doc/props/P_EARMUFFS
+++ b/doc/props/P_EARMUFFS
@@ -1,9 +1,22 @@
-NAME:
-    P_EARMUFFS                    "earmuffs"                    
 
-DEFINIERT IN:
-    /sys/properties.h
+P_EARMUFFS
+**********
 
-BESCHREIBUNG:
-     Shouts von Spielern und Magiern mit Magierlevel < earmuffs werden
-     abgeblockt (Nur fuer Magier).
+
+NAME
+====
+
+   P_EARMUFFS                    "earmuffs"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Shouts von Spielern und Magiern mit Magierlevel < earmuffs werden
+   abgeblockt (Nur fuer Magier).
diff --git a/doc/props/P_EATER_MSG b/doc/props/P_EATER_MSG
index 99ae4d3..132469d 100644
--- a/doc/props/P_EATER_MSG
+++ b/doc/props/P_EATER_MSG
@@ -1,23 +1,44 @@
-NAME:
-     P_EATER_MSG                   "std_food_eater_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_EATER_MSG
+***********
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn eine Speise konsumiert wird.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "Du konsumierst @WEN1."
 
-SIEHE AUCH:
-     /std/food.c, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_EATER_MSG                   "std_food_eater_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn eine Speise konsumiert wird.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "Du konsumierst @WEN1."
+
+
+SIEHE AUCH
+==========
+
+   /std/food.c, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_EFFECTIVE_AC b/doc/props/P_EFFECTIVE_AC
index ff7dd53..5473d5d 100644
--- a/doc/props/P_EFFECTIVE_AC
+++ b/doc/props/P_EFFECTIVE_AC
@@ -1,87 +1,107 @@
+
 P_EFFECTIVE_AC
+**************
 
-NAME:
-     P_EFFECTIVE_AC      "effective_ac"
 
-DEFINIERT IN:
-     <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property kommt sowohl in Ruestungen als auch in Waffen, die
-     schuetzen sollen, zum Einsatz.
+   P_EFFECTIVE_AC      "effective_ac"
 
-     In Ruestungen kann hier der Effektivwert der Ruestungsklasse vermerkt
-     werden, wenn diese noch durch eine DefendFunc() modifiziert wird
-     (soweit sich ein solcher Effektivwert angeben laesst).
 
-     In einigen Gilden koennen Waffen auch als Ruestung eingesetzt werden
-     (z.B. beim Parieren eines Angriffs). In dieser Property kann man die
-     Ruestungsklasse eintragen, die die Waffe bei solchen Aktionen aufweisen
-     soll. Dabei ist man an die ueblichen Beschraenkungen der
-     Ruestungsklasse gebunden! (s. /sys/combat.h)
+DEFINIERT IN
+============
 
-BERMERKUNGEN:
-     Das Kaempferspellbook verwendet fuer Paraden etc. P_EFFECTIVE_AC anstatt
-     P_AC, wenn verfuegbar.
+   <combat.h>
 
-BEISPIELE:
-     * DefendFuncs: 
-       Der doppelte Mittelwert der DefendFunc wird zur Basis-AC dazuaddiert,
-       da sich der 'Schutzwert = random(Basis-AC) + absolut(DefendFunc-Wert)'
-       berechnet.
 
-     // #1 Eine Ruestung mit P_AC von 35 und randomisierter DefendFunc
-        SetProp(P_AC, 35);
-        SetProp(P_DEFEND_FUNC, this_object());
+BESCHREIBUNG
+============
 
-        int DefendFunc(...) {
-          return random(20);                       // Mittelwert: 10
-        }
-        -> SetProp(P_EFFECTIVE_AC, 55);            // 35 + 2*10 = 55
+   Diese Property kommt sowohl in Ruestungen als auch in Waffen, die
+   schuetzen sollen, zum Einsatz.
 
-     // #2 Eine Ruestung mit P_AC von 35 und teilrandomisierter DefendFunc
-        SetProp(P_AC, 35);
-        SetProp(P_DEFEND_FUNC, this_object());
+   In Ruestungen kann hier der Effektivwert der Ruestungsklasse vermerkt
+   werden, wenn diese noch durch eine DefendFunc() modifiziert wird
+   (soweit sich ein solcher Effektivwert angeben laesst).
 
-        int DefendFunc(...) {
-          return 20 + random(10);                  // Mittelwert: 20 + 5
-        }
-        -> SetProp(P_EFFECTIVE_AC, 85);            // 35 + 2*(20+5) = 85
+   In einigen Gilden koennen Waffen auch als Ruestung eingesetzt werden
+   (z.B. beim Parieren eines Angriffs). In dieser Property kann man die
+   Ruestungsklasse eintragen, die die Waffe bei solchen Aktionen aufweisen
+   soll. Dabei ist man an die ueblichen Beschraenkungen der
+   Ruestungsklasse gebunden! (s. /sys/combat.h)
 
-     * Sonderfunktion im Kontext der Kaempfergilde:
-       Auch wenn der eigentliche AC-Wert durch keine DefendFunc oAe
-       modifiziert wird, sind abweichende Werte in P_EFFECTIVE_AC zB in der
-       Kaempfergilde fuer Paraden oder aehnliches sinnvoll. Maximalwert ist
-       dafuer der doppelte Wert des Basis-AC-Wertes.
 
-     // #3 Ein schon sehr gutes Schild, welches bei der Schildparade aber
-     //    noch besser schuetzen soll.
-        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
-        SetProp(P_AC, 38);
-        SetProp(P_EFFECTIVE_AC, 55);
+BERMERKUNGEN
+============
 
-     // #4 Ein sehr labbriges Schild schuetzt zwar gegen normale Schlaege,
-     //    ist zum Parieren aber irgendwie ungeeignet weil unkontrollierbar.
-        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
-        SetProp(P_AC, 38);
-        SetProp(P_EFFECTIVE_AC, 20);
+   Das Kaempferspellbook verwendet fuer Paraden etc. P_EFFECTIVE_AC anstatt
+   P_AC, wenn verfuegbar.
 
-     * Waffen:
-       P_EFFECTIVE_AC wird im Kaempferspellbook als Bonus dazugezaehlt! Daher
-       sollten gute Parierwaffen auch einen niedrigeren P_WC-Wert haben.
-       Reine Parierwaffen duerfen den maximalen AC-Wert von Schilden als
-       Maximum gesetzt haben - die Balance klaert ggf, ob das auch auf den
-       Gildenparierwert anwendbar ist.
 
-     // #5 Eine maessige Hellebarde/Axtwaffe mit Parierhaken.
-        SetProp(P_WEAPON_TYPE, WT_AXE);
-        SetProp(P_WC, 100);
-        SetProp(P_EFFECTIVE_AC, 25);
+BEISPIELE
+=========
 
-SIEHE AUCH:
-     Waffen:     P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc()
-     Ruestungen: P_AC, P_TOTAL_AC, DefendFunc()
-     Files:      /std/weapon.c, /std/weapon/combat.c
-     Balance:    waffen, ruestungen, properties, kaempferboni
+   * DefendFuncs:
+     Der doppelte Mittelwert der DefendFunc wird zur Basis-AC dazuaddiert,
+     da sich der 'Schutzwert = random(Basis-AC) + absolut(DefendFunc-Wert)'
+     berechnet.
+
+   // #1 Eine Ruestung mit P_AC von 35 und randomisierter DefendFunc
+      SetProp(P_AC, 35);
+      SetProp(P_DEFEND_FUNC, this_object());
+
+      int DefendFunc(...) {
+        return random(20);                       // Mittelwert: 10
+      }
+      -> SetProp(P_EFFECTIVE_AC, 55);            // 35 + 2*10 = 55
+
+   // #2 Eine Ruestung mit P_AC von 35 und teilrandomisierter DefendFunc
+      SetProp(P_AC, 35);
+      SetProp(P_DEFEND_FUNC, this_object());
+
+      int DefendFunc(...) {
+        return 20 + random(10);                  // Mittelwert: 20 + 5
+      }
+      -> SetProp(P_EFFECTIVE_AC, 85);            // 35 + 2*(20+5) = 85
+
+   * Sonderfunktion im Kontext der Kaempfergilde:
+     Auch wenn der eigentliche AC-Wert durch keine DefendFunc oAe
+     modifiziert wird, sind abweichende Werte in P_EFFECTIVE_AC zB in der
+     Kaempfergilde fuer Paraden oder aehnliches sinnvoll. Maximalwert ist
+     dafuer der doppelte Wert des Basis-AC-Wertes.
+
+   // #3 Ein schon sehr gutes Schild, welches bei der Schildparade aber
+   //    noch besser schuetzen soll.
+      SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+      SetProp(P_AC, 38);
+      SetProp(P_EFFECTIVE_AC, 55);
+
+   // #4 Ein sehr labbriges Schild schuetzt zwar gegen normale Schlaege,
+   //    ist zum Parieren aber irgendwie ungeeignet weil unkontrollierbar.
+      SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+      SetProp(P_AC, 38);
+      SetProp(P_EFFECTIVE_AC, 20);
+
+   * Waffen:
+     P_EFFECTIVE_AC wird im Kaempferspellbook als Bonus dazugezaehlt! Daher
+     sollten gute Parierwaffen auch einen niedrigeren P_WC-Wert haben.
+     Reine Parierwaffen duerfen den maximalen AC-Wert von Schilden als
+     Maximum gesetzt haben - die Balance klaert ggf, ob das auch auf den
+     Gildenparierwert anwendbar ist.
+
+   // #5 Eine maessige Hellebarde/Axtwaffe mit Parierhaken.
+      SetProp(P_WEAPON_TYPE, WT_AXE);
+      SetProp(P_WC, 100);
+      SetProp(P_EFFECTIVE_AC, 25);
+
+
+SIEHE AUCH
+==========
+
+   Waffen:     P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc()
+   Ruestungen: P_AC, P_TOTAL_AC, DefendFunc()
+   Files:      /std/weapon.c, /std/weapon/combat.c
+   Balance:    waffen, ruestungen, properties, kaempferboni
 
 6. Nov 2011 Gloinson
diff --git a/doc/props/P_EFFECTIVE_WC b/doc/props/P_EFFECTIVE_WC
index 0328629..aa16980 100644
--- a/doc/props/P_EFFECTIVE_WC
+++ b/doc/props/P_EFFECTIVE_WC
@@ -1,86 +1,112 @@
+
 P_EFFECTIVE_WC
+**************
 
-NAME:
-     P_EFFECTIVE_WC     "effective_wc"
 
-DEFINIERT IN:
-     <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property kommt sowohl in Waffen als auch Ruestungen, die Schaden
-     machen sollen, zum Einsatz.
+   P_EFFECTIVE_WC     "effective_wc"
 
-     Falls die Staerke einer Waffe noch durch eine HitFunc() modifiziert
-     wird, sollte hier der Effektivwert der Waffenklasse vermerkt werden,
-     soweit er sich angeben laesst.
-     Diese Property dient vor allem dazu, eine Waffe mit HitFunc() korrekt
-     einzuschaetzen.
 
-     In einigen Gilden koennen Ruestungen auch als Waffen eingesetzt werden
-     (z.B. ein Paar Schuhe zum Treten). In dieser Property kann man die
-     Waffenklasse eintragen, die die Ruestung bei solchen Aktionen aufweisen
-     soll. Dabei ist man an die ueblichen Beschraenkungen der Waffenklasse
-     gebunden! (s. /sys/combat.h)
-     Der Ruestung kann man dann auch einen Schadenstyp mit auf den Weg
-     geben.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     Das Kaempferspellbook verwendet bei Ruestungen P_AC, wenn
-     P_EFFECTIVE_WC nicht gesetzt ist.
+   <combat.h>
 
-BEISPIELE:
-     * HitFuncs:
-       Der doppelte Mittelwert der HitFunc wird zur Basis-WC dazuaddiert,
-       da sich der 'Angriffswert = random(Basis-WC) + absolut(HitFunc-Wert)'
-       berechnet.
 
-     // #1 Waffe mit Basis-WC 120 und randomisierter HitFunc
-        SetProp(P_WC, 120);
-        SetProp(P_HIT_FUNC, this_object());
-       
-        int HitFunc(...) {
-          return random(30);                       // Mittelwert: 15
-        }
-        -> SetProp(P_EFFECTIVE_WC, 150);           // 120 + 2*15 = 150
-     
-     // #2 Waffe mit Basis-WC 120 und teilweise absoluter HitFunc
-        SetProp(P_WC, 120);
-        SetProp(P_HIT_FUNC, this_object());
-       
-        int HitFunc(...) {
-          return 30 + random(10);                  // Mittelwert: 30 + 5
-        }
-        -> SetProp(P_EFFECTIVE_WC, 190);           // 120 + 2*(30+5) = 190
+BESCHREIBUNG
+============
 
-     * Ruestungen (zB Gildennutzung):
-       Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils
-       doppelte maximale P_AC-Wert. Angabe eines Schadenstyps ist sinnvoll.
+   Diese Property kommt sowohl in Waffen als auch Ruestungen, die Schaden
+   machen sollen, zum Einsatz.
 
-     // #3 Ein paar Schuhe, mit maximalem Schlag-/Saeureschaden.
-        SetProp(P_ARMOUR_TYPE, AT_BOOT);
-        SetProp(P_AC, 2);
-        SetProp(P_DAM_TYPE, ({DT_BLUDGEON,DT_ACID}));
-        -> SetProp(P_EFFECTIVE_WC, 12);  // hoechstmoeglicher Wert bei
-                                         // Schuhen, da deren max. P_AC = 6
-     // aequivalent und zukunftssicher:
-        -> SetProp(P_EFFECTIVE_WC, 2 * VALID_ARMOUR_CLASS[AT_BOOT]);
+   Falls die Staerke einer Waffe noch durch eine HitFunc() modifiziert
+   wird, sollte hier der Effektivwert der Waffenklasse vermerkt werden,
+   soweit er sich angeben laesst.
+   Diese Property dient vor allem dazu, eine Waffe mit HitFunc() korrekt
+   einzuschaetzen.
 
-     // #4 Ein Schild mit spitzem Dorn. (Stichschaden beim Schildstoss.)
-        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
-        SetProp(P_AC, 5);
-        SetProp(P_DAM_TYPE, ({DT_PIERCE}));
-        SetProp(P_EFFECTIVE_WC, 55);
+   In einigen Gilden koennen Ruestungen auch als Waffen eingesetzt werden
+   (z.B. ein Paar Schuhe zum Treten). In dieser Property kann man die
+   Waffenklasse eintragen, die die Ruestung bei solchen Aktionen aufweisen
+   soll. Dabei ist man an die ueblichen Beschraenkungen der Waffenklasse
+   gebunden! (s. /sys/combat.h)
+   Der Ruestung kann man dann auch einen Schadenstyp mit auf den Weg
+   geben.
 
-     // #5 Ein Gummischild ist schlecht fuer Angriffe. BOING!
-        SetProp(P_ARMOUR_TYPE, AT_SHIELD);
-        SetProp(P_AC, 30);
-        SetProp(P_DAM_TYPE, ({DT_BLUDGEON}));
-        SetProp(P_EFFECTIVE_WC, 10);
 
-SIEHE AUCH:
-     Waffen:     P_WC, P_TOTAL_WC, HitFunc()
-     Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc()
-     Files:      /std/weapon.c, /std/weapon/combat.c
-     Balance:    waffen, ruestungen, properties, kaempferboni
+BEMERKUNGEN
+===========
+
+   Das Kaempferspellbook verwendet bei Ruestungen P_AC, wenn
+   P_EFFECTIVE_WC nicht gesetzt ist.
+
+
+BEISPIELE
+=========
+
+   * HitFuncs:
+     Der doppelte Mittelwert der HitFunc wird zur Basis-WC dazuaddiert,
+     da sich der 'Angriffswert = random(Basis-WC) + absolut(HitFunc-Wert)'
+     berechnet.
+
+   // #1 Waffe mit Basis-WC 120 und randomisierter HitFunc
+      SetProp(P_WC, 120);
+      SetProp(P_HIT_FUNC, this_object());
+
+
+
+      int HitFunc(...) {
+        return random(30);                       // Mittelwert: 15
+      }
+      -> SetProp(P_EFFECTIVE_WC, 150);           // 120 + 2*15 = 150
+
+
+
+   // #2 Waffe mit Basis-WC 120 und teilweise absoluter HitFunc
+      SetProp(P_WC, 120);
+      SetProp(P_HIT_FUNC, this_object());
+
+
+
+      int HitFunc(...) {
+        return 30 + random(10);                  // Mittelwert: 30 + 5
+      }
+      -> SetProp(P_EFFECTIVE_WC, 190);           // 120 + 2*(30+5) = 190
+
+   * Ruestungen (zB Gildennutzung):
+     Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils
+     doppelte maximale P_AC-Wert. Angabe eines Schadenstyps ist sinnvoll.
+
+   // #3 Ein paar Schuhe, mit maximalem Schlag-/Saeureschaden.
+      SetProp(P_ARMOUR_TYPE, AT_BOOT);
+      SetProp(P_AC, 2);
+      SetProp(P_DAM_TYPE, ({DT_BLUDGEON,DT_ACID}));
+      -> SetProp(P_EFFECTIVE_WC, 12);  // hoechstmoeglicher Wert bei
+                                       // Schuhen, da deren max. P_AC = 6
+   // aequivalent und zukunftssicher:
+      -> SetProp(P_EFFECTIVE_WC, 2 * VALID_ARMOUR_CLASS[AT_BOOT]);
+
+   // #4 Ein Schild mit spitzem Dorn. (Stichschaden beim Schildstoss.)
+      SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+      SetProp(P_AC, 5);
+      SetProp(P_DAM_TYPE, ({DT_PIERCE}));
+      SetProp(P_EFFECTIVE_WC, 55);
+
+   // #5 Ein Gummischild ist schlecht fuer Angriffe. BOING!
+      SetProp(P_ARMOUR_TYPE, AT_SHIELD);
+      SetProp(P_AC, 30);
+      SetProp(P_DAM_TYPE, ({DT_BLUDGEON}));
+      SetProp(P_EFFECTIVE_WC, 10);
+
+
+SIEHE AUCH
+==========
+
+   Waffen:     P_WC, P_TOTAL_WC, HitFunc()
+   Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc()
+   Files:      /std/weapon.c, /std/weapon/combat.c
+   Balance:    waffen, ruestungen, properties, kaempferboni
 
 6. Nov 2011 Gloinson
diff --git a/doc/props/P_EMPTY_MSG b/doc/props/P_EMPTY_MSG
index 7248d8e..e91d622 100644
--- a/doc/props/P_EMPTY_MSG
+++ b/doc/props/P_EMPTY_MSG
@@ -1,24 +1,45 @@
-NAME:
-     P_EMPTY_MSG                   "std_food_eater_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_EMPTY_MSG
+***********
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn versucht wird, eine aufgebrauchte Speise
-     (also einen leeren Behaelter) zu konsumieren.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise (also den leeren Behaelter)
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "@WER1 ist bereits leer."
 
-SIEHE AUCH:
-     /std/food.c, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_EMPTY_MSG                   "std_food_eater_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn versucht wird, eine aufgebrauchte Speise
+   (also einen leeren Behaelter) zu konsumieren.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise (also den leeren Behaelter)
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "@WER1 ist bereits leer."
+
+
+SIEHE AUCH
+==========
+
+   /std/food.c, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_EMPTY_PROPS b/doc/props/P_EMPTY_PROPS
index a8156d7..6f5c126 100644
--- a/doc/props/P_EMPTY_PROPS
+++ b/doc/props/P_EMPTY_PROPS
@@ -1,33 +1,54 @@
-NAME:
-     P_EMPTY_PROPS                 "std_food_empty_props"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_EMPTY_PROPS
+*************
 
-BESCHREIBUNG:
-     Mapping mit Properties fuer den leeren Behaelter, der uebrig bleibt,wenn
-     eine Speise aufgebraucht ist. Alle enthaltenen Properties werden gesetzt,
-     wenn keine Portionen mehr vorhanden sind.
-     Bereits in diesen Properties eingetragene Werte werden ueberschrieben!
-     Wenn diese Property nicht gesetzt ist, wird die Speise zerstoert, wenn
-     alle Portionen aufgebraucht ist - es bleibt also kein Behaelter zurueck.
-     Achtung: Es werden keine closures in diesem Mapping unterstuetzt!
-     
-BEMERKUNGEN:
-     Bei der Abfrage von P_VALUE und P_WEIGHT in der Speise, werden die dazu
-     in P_EMPTY_PROPS gespeicherten Werte verwendet, um das Gewicht/Wert des
-     leeren Behaelters zum Gesamtwert der Speise zu addieren.
-     Man kann alle Properties in dieses Mapping eintragen, die sich in der
-     Speise per SetProp setzen lassen. Zusaetzlich kann man Arrays in P_IDS
-     und P_ADJECTIVES speichern, die per Add-Methode in der Speise
-     hinzugefuegt werden, nachdem die im create() der Speise hinzugefuegten
-     Ids/Adjectives dort entfernt wurden.
-     
-BEISPIELE:
-     Beispiele zur Verwendung findet man unter /doc/beispiele/food
 
-SIEHE AUCH:
-     /std/food.c, wiz/food
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_EMPTY_PROPS                 "std_food_empty_props"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Mapping mit Properties fuer den leeren Behaelter, der uebrig bleibt,wenn
+   eine Speise aufgebraucht ist. Alle enthaltenen Properties werden gesetzt,
+   wenn keine Portionen mehr vorhanden sind.
+   Bereits in diesen Properties eingetragene Werte werden ueberschrieben!
+   Wenn diese Property nicht gesetzt ist, wird die Speise zerstoert, wenn
+   alle Portionen aufgebraucht ist - es bleibt also kein Behaelter zurueck.
+   Achtung: Es werden keine closures in diesem Mapping unterstuetzt!
+
+
+BEMERKUNGEN
+===========
+
+   Bei der Abfrage von P_VALUE und P_WEIGHT in der Speise, werden die dazu
+   in P_EMPTY_PROPS gespeicherten Werte verwendet, um das Gewicht/Wert des
+   leeren Behaelters zum Gesamtwert der Speise zu addieren.
+   Man kann alle Properties in dieses Mapping eintragen, die sich in der
+   Speise per SetProp setzen lassen. Zusaetzlich kann man Arrays in P_IDS
+   und P_ADJECTIVES speichern, die per Add-Methode in der Speise
+   hinzugefuegt werden, nachdem die im create() der Speise hinzugefuegten
+   Ids/Adjectives dort entfernt wurden.
+
+
+BEISPIELE
+=========
+
+   Beispiele zur Verwendung findet man unter /doc/beispiele/food
+
+
+SIEHE AUCH
+==========
+
+   /std/food.c, wiz/food
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_ENABLE_IN_ATTACK_OUT b/doc/props/P_ENABLE_IN_ATTACK_OUT
index d60a807..0a64c74 100644
--- a/doc/props/P_ENABLE_IN_ATTACK_OUT
+++ b/doc/props/P_ENABLE_IN_ATTACK_OUT
@@ -1,33 +1,51 @@
-NAME:
-	P_ENABLE_IN_ATTACK_OUT		"enable_in_attack_out"
 
-DEFINIERT IN:
-	/sys/combat.h
+P_ENABLE_IN_ATTACK_OUT
+**********************
 
-BESCHREIBUNG:
-	Normalerweise wird die bekannte Taktik Rein-Angriff-Raus
-	standardmaessig unterbunden, damit NPCs auch eine Chance haben, sich
-	zu verteidigen. Hierzu wird der Schaden innerhalb do_damage()
-	durch einen Wert geteilt, der sich aus der Verweildauer des
-	Angreifers im Raum ergibt (bis zu 3 Sekunden).
-	Da manche NPCs so konzeptioniert wurden, dass man sie nur mit der
-	erwaehnten Taktik toeten kann, kann man sie auch explizit erlauben
-	(manche NPCs verwenden auch eigene Methoden, diese Taktik zu
-	 verbieten, und sie waere dann doppelt abgefangen).
-	Hierzu setzt man einfach die Property P_ENABLE_IN_ATTACK_OUT im NPC.
 
-BEISPIEL:
-	Das folgende Beispiel erlaubt einfach mal die angesprochene Taktik:
-	  void create()
-	  { ...
-	    SetProp(P_ENABLE_IN_ATTACK_OUT,1);
-	    ...
-	  }
-	Jetzt kann man den NPC mit Rein-Angriff-Raus auch wirkungsvoll
-	bekaempfen.
+NAME
+====
 
-SIEHE AUCH:
-	do_damage(), P_LAST_MOVE, /std/living/life.c
+   P_ENABLE_IN_ATTACK_OUT          "enable_in_attack_out"
 
------------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Normalerweise wird die bekannte Taktik Rein-Angriff-Raus
+   standardmaessig unterbunden, damit NPCs auch eine Chance haben, sich
+   zu verteidigen. Hierzu wird der Schaden innerhalb do_damage()
+   durch einen Wert geteilt, der sich aus der Verweildauer des
+   Angreifers im Raum ergibt (bis zu 3 Sekunden).
+   Da manche NPCs so konzeptioniert wurden, dass man sie nur mit der
+   erwaehnten Taktik toeten kann, kann man sie auch explizit erlauben
+   (manche NPCs verwenden auch eigene Methoden, diese Taktik zu
+    verbieten, und sie waere dann doppelt abgefangen).
+   Hierzu setzt man einfach die Property P_ENABLE_IN_ATTACK_OUT im NPC.
+
+
+BEISPIEL
+========
+
+   Das folgende Beispiel erlaubt einfach mal die angesprochene Taktik:
+     void create()
+     { ...
+       SetProp(P_ENABLE_IN_ATTACK_OUT,1);
+       ...
+     }
+   Jetzt kann man den NPC mit Rein-Angriff-Raus auch wirkungsvoll
+   bekaempfen.
+
+
+SIEHE AUCH
+==========
+
+   do_damage(), P_LAST_MOVE, /std/living/life.c
+
 Last modified: Sat Jan 30 12:53:00 1999 by Patryn
diff --git a/doc/props/P_ENEMY_DAMAGE b/doc/props/P_ENEMY_DAMAGE
index 216339d..bad9c99 100644
--- a/doc/props/P_ENEMY_DAMAGE
+++ b/doc/props/P_ENEMY_DAMAGE
@@ -1,31 +1,48 @@
+
 P_ENEMY_DAMAGE
+**************
 
-NAME:
-     P_ENEMY_DAMAGE "enemy_damage"
 
-DEFINIERT IN:
-     <living/life.h>
+NAME
+====
 
-BESCHREIBUNG:
-     In dieser Property ist vermerkt, welches Wesen diesem Wesen wieviel
-     Schaden zugefuegt hat.
+   P_ENEMY_DAMAGE "enemy_damage"
 
-     Die Property enthaelt ein Mapping, das den Angreifern den
-     errechten Schaden zuordnet:
-     ([ <obname1>: <damage>; <owner>, ... ])
 
-       <obname1>: Name des Objekts, das den Schaden verursacht hat (string),
-                  z.B. "/magier:zesstra"
-       <damage> : Schadensmenge (int)
-       <owner>  : wenn das schadensverursachende Wesen ein NPC war/ist,
-                  welches P_HELPER_NPC gesetzt hatte und somit einem Spieler
-                  hilft, steht hier das Objekt des jeweiligen Spielers
-                  (object)
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     Diese Property laesst sich nur abfragen!
+   <living/life.h>
 
-SIEHE AUCH:
-     P_HELPER_NPC
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   In dieser Property ist vermerkt, welches Wesen diesem Wesen wieviel
+   Schaden zugefuegt hat.
+
+   Die Property enthaelt ein Mapping, das den Angreifern den
+   errechten Schaden zuordnet:
+   ([ <obname1>: <damage>; <owner>, ... ])
+
+     <obname1>: Name des Objekts, das den Schaden verursacht hat (string),
+                z.B. "/magier:zesstra"
+     <damage> : Schadensmenge (int)
+     <owner>  : wenn das schadensverursachende Wesen ein NPC war/ist,
+                welches P_HELPER_NPC gesetzt hatte und somit einem Spieler
+                hilft, steht hier das Objekt des jeweiligen Spielers
+                (object)
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property laesst sich nur abfragen!
+
+
+SIEHE AUCH
+==========
+
+   P_HELPER_NPC
+
 26.10.2009, Zesstra
diff --git a/doc/props/P_ENEMY_DEATH_SEQUENCE b/doc/props/P_ENEMY_DEATH_SEQUENCE
index 260d325..03b2bec 100644
--- a/doc/props/P_ENEMY_DEATH_SEQUENCE
+++ b/doc/props/P_ENEMY_DEATH_SEQUENCE
@@ -1,44 +1,61 @@
+
 P_ENEMY_DEATH_SEQUENCE
+**********************
 
-NAME:
-     P_ENEMY_DEATH_SEQUENCE        "enemy_death_sequence"
 
-DEFINIERT IN:
-     /sys/living/combat.h
+NAME
+====
 
-BESCHREIBUNG:
-     Ueber diese Property kann Einfluss auf die Todessequenz eines getoeten
-     Spielers genommen werden. Sie muss im toetenden Objekt, d.h. dem
-     Objekt welches die()/do_damage()/Defend() im Spieler gerufen hat,
-     gesetzt sein.
+   P_ENEMY_DEATH_SEQUENCE        "enemy_death_sequence"
 
-     Es gibt folgende gueltige Werte:
-     - string: Pfad zu einer eigenen Todessequenz im gueltigen Format
-     - mixed*  Eine Todessequenz im Format des Todesraumes:
-               ({<int gesamtlaenge>,
-                 ([<int index1>: <string umgebrochene Meldung1>,
-                   <int index2>: <string umgebrochene Meldung2>,
-                   ...])
-               })
-     - mapping In die Standard-Lars-Todessequenz einzufuegende Zeilen:
-               ([<int zeitindex>: <string umgebrochener Text>])
 
-BEISPIELE:
-     // Pfad zu einer eigenen DSQ
-     SetProp(P_ENEMY_DEATH_SEQUENCE,  ".../passende_dsq.txt");
+DEFINIERT IN
+============
 
-     // eigene DSQ im Todesraumformat:
-     SetProp(P_ENEMY_DEATH_SEQUENCE,
-             ({ 2, ([1: "DU LERNST AUS DEINEM FEHLER.\n"])}));
+   /sys/living/combat.h
 
-     // Einfuegen einer Meldung (des NPCs) in die Standard-Todessequenz
-     SetProp(P_ENEMY_DEATH_SEQUENCE,
-             ([5: "Du hoerst "+name(WEN)+" hoehnisch kichern.\n"]));
 
-SIEHE AUCH:
-     Tod:            die(L)
-     Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
-                     P_ZAP_MSG, P_NEXT_DEATH_SEQUENCE
-     Sonstiges:      P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+BESCHREIBUNG
+============
 
-10. Nov 2011 Gloinson
\ No newline at end of file
+   Ueber diese Property kann Einfluss auf die Todessequenz eines getoeten
+   Spielers genommen werden. Sie muss im toetenden Objekt, d.h. dem
+   Objekt welches die()/do_damage()/Defend() im Spieler gerufen hat,
+   gesetzt sein.
+
+   Es gibt folgende gueltige Werte:
+   - string: Pfad zu einer eigenen Todessequenz im gueltigen Format
+   - mixed*  Eine Todessequenz im Format des Todesraumes:
+             ({<int gesamtlaenge>,
+               ([<int index1>: <string umgebrochene Meldung1>,
+                 <int index2>: <string umgebrochene Meldung2>,
+                 ...])
+             })
+   - mapping In die Standard-Lars-Todessequenz einzufuegende Zeilen:
+             ([<int zeitindex>: <string umgebrochener Text>])
+
+
+BEISPIELE
+=========
+
+   // Pfad zu einer eigenen DSQ
+   SetProp(P_ENEMY_DEATH_SEQUENCE,  ".../passende_dsq.txt");
+
+   // eigene DSQ im Todesraumformat:
+   SetProp(P_ENEMY_DEATH_SEQUENCE,
+           ({ 2, ([1: "DU LERNST AUS DEINEM FEHLER.\n"])}));
+
+   // Einfuegen einer Meldung (des NPCs) in die Standard-Todessequenz
+   SetProp(P_ENEMY_DEATH_SEQUENCE,
+           ([5: "Du hoerst "+name(WEN)+" hoehnisch kichern.\n"]));
+
+
+SIEHE AUCH
+==========
+
+   Tod:            die(L)
+   Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+                   P_ZAP_MSG, P_NEXT_DEATH_SEQUENCE
+   Sonstiges:      P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
+10. Nov 2011 Gloinson
diff --git a/doc/props/P_ENTERCMDS b/doc/props/P_ENTERCMDS
index 0f7e3d9..fc6f72f 100644
--- a/doc/props/P_ENTERCMDS
+++ b/doc/props/P_ENTERCMDS
@@ -1,33 +1,57 @@
-NAME:
-    P_ENTERCMDS                   "leavecmds"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_ENTERCMDS
+***********
 
-BESCHREIBUNG:
-    Ein Array mit Befehlen, die zum Betreten des Transporters fuehren. 
 
-BEISPIEL:
-    SetProp(P_ENTERCMDS,({ "betrete","betritt" }) );
+NAME
+====
 
-    Gibt der Spieler nun 'betrete xxx' ein, so sorgt /std/transport.c 
-    dafuer, das der Spieler auch auf oder in den Transporter bewegt 
-    wird. Vorausgesetzt natuerlich, er ist an einem Haltepunkt ange-
-    langt und es ist genuegend Platz dort.
+   P_ENTERCMDS                   "leavecmds"
 
-BEMERKUNGEN:
-    Um /std/transport.c nicht aufzublaehen, werden weitere Argumente wie
-    etwa 'betrete das|die|den xxx' _nicht_ unterstuetzt!
 
-    Hier muss der verantwortliche Magier schon eine eigene Loesung finden
-    und in seinen Transporter schreiben.
+DEFINIERT IN
+============
 
-    Sollen Kommandos zum Betreten UND Verlassen eines Transporters ver-
-    wendet werden koennen, muessen diese in P_TRAVEL_CMDS gesetzt werden.
+   /sys/transport.h
 
-SIEHE AUCH:
-    P_LEAVEFAIL, P_ENTERFAIL, P_LEAVECMDS, P_TRAVEL_CMDS, transporter,
 
-LETZTE AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
-    
\ No newline at end of file
+BESCHREIBUNG
+============
+
+   Ein Array mit Befehlen, die zum Betreten des Transporters fuehren.
+
+
+BEISPIEL
+========
+
+   SetProp(P_ENTERCMDS,({ "betrete","betritt" }) );
+
+   Gibt der Spieler nun 'betrete xxx' ein, so sorgt /std/transport.c
+   dafuer, das der Spieler auch auf oder in den Transporter bewegt
+   wird. Vorausgesetzt natuerlich, er ist an einem Haltepunkt ange-
+   langt und es ist genuegend Platz dort.
+
+
+BEMERKUNGEN
+===========
+
+   Um /std/transport.c nicht aufzublaehen, werden weitere Argumente wie
+   etwa 'betrete das|die|den xxx' _nicht_ unterstuetzt!
+
+   Hier muss der verantwortliche Magier schon eine eigene Loesung finden
+   und in seinen Transporter schreiben.
+
+   Sollen Kommandos zum Betreten UND Verlassen eines Transporters ver-
+   wendet werden koennen, muessen diese in P_TRAVEL_CMDS gesetzt werden.
+
+
+SIEHE AUCH
+==========
+
+   P_LEAVEFAIL, P_ENTERFAIL, P_LEAVECMDS, P_TRAVEL_CMDS, transporter,
+
+
+LETZTE AENDERUNG
+================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_ENTERFAIL b/doc/props/P_ENTERFAIL
index 2ecd1e6..5291065 100644
--- a/doc/props/P_ENTERFAIL
+++ b/doc/props/P_ENTERFAIL
@@ -1,24 +1,48 @@
-NAME:
-    P_ENTERFAIL                   "enterfail"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_ENTERFAIL
+***********
 
-BESCHREIBUNG:
-     Meldung an den Spieler, wenn er einen vollen Transporter betreten 
-     will. Ist die Propertie ein Array, so wird das erste Element als
-     Meldung an den Spieler, das zweite als Meldung an die Mitspieler 
-     im Raum geschickt.
 
-BEISPIEL:
-     SetProp(P_ENTERFAIL,"Dort ist wirklich kein Platz mehr fuer Dich");
-     
-     SetProp(P_ENTERFAIL, ({ "Dort ist wirklich kein Platz mehr fuer Dich",
-                             "versucht, auf die Kutsche zu klettern, wird "
-                            +"aber wieder heruntergeschickt" }) );
+NAME
+====
 
-SIEHE AUCH:
-     P_ENTERMSG, P_LEAVEFAIL, P_LEAVEMSG, transporter
+   P_ENTERFAIL                   "enterfail"
 
-LETZTE AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
+
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Spieler, wenn er einen vollen Transporter betreten
+   will. Ist die Propertie ein Array, so wird das erste Element als
+   Meldung an den Spieler, das zweite als Meldung an die Mitspieler
+   im Raum geschickt.
+
+
+BEISPIEL
+========
+
+   SetProp(P_ENTERFAIL,"Dort ist wirklich kein Platz mehr fuer Dich");
+
+
+
+   SetProp(P_ENTERFAIL, ({ "Dort ist wirklich kein Platz mehr fuer Dich",
+                           "versucht, auf die Kutsche zu klettern, wird "
+                          +"aber wieder heruntergeschickt" }) );
+
+
+SIEHE AUCH
+==========
+
+   P_ENTERMSG, P_LEAVEFAIL, P_LEAVEMSG, transporter
+
+
+LETZTE AENDERUNG
+================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_ENTERMSG b/doc/props/P_ENTERMSG
index 2a2128e..9ba314d 100644
--- a/doc/props/P_ENTERMSG
+++ b/doc/props/P_ENTERMSG
@@ -1,18 +1,40 @@
-NAME:
-    P_ENTERMSG                    "entermsg"                    
 
-DEFINIERT IN:
-    /sys/transport.h
+P_ENTERMSG
+**********
 
-BESCHREIBUNG:
-     Array mit zwei Meldungen, eine fuer den Raum, den der Spieler
-     verlaesst, und eine fuer den Transporter, in den er geht.
 
-BEISPIEL:
-     SetProp(P_ENTERMSG, ({ "klettert in die Kutsche","klettert herein" }) );
+NAME
+====
 
-SIEHE AUCH:
-     P_ENTERFAIL, P_LEAVEFAIL, P_LEAVEMSG, transporter
+   P_ENTERMSG                    "entermsg"
 
-LETZTER AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
+
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Array mit zwei Meldungen, eine fuer den Raum, den der Spieler
+   verlaesst, und eine fuer den Transporter, in den er geht.
+
+
+BEISPIEL
+========
+
+   SetProp(P_ENTERMSG, ({ "klettert in die Kutsche","klettert herein" }) );
+
+
+SIEHE AUCH
+==========
+
+   P_ENTERFAIL, P_LEAVEFAIL, P_LEAVEMSG, transporter
+
+
+LETZTER AENDERUNG
+=================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_ENV_MSG b/doc/props/P_ENV_MSG
index b39e2c1..e969399 100644
--- a/doc/props/P_ENV_MSG
+++ b/doc/props/P_ENV_MSG
@@ -1,26 +1,47 @@
-NAME:
-     P_ENV_MSG                     "std_food_env_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_ENV_MSG
+*********
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn eine Speise konsumiert werden soll,
-     die nicht im eigenen Inventory liegt.
-     Wenn diese Property leer ist, kann man die Speise dann sogar
-     konsumieren!
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "Vielleicht solltest Du @WEN1 vorher nehmen."
 
-SIEHE AUCH:
-     wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_ENV_MSG                     "std_food_env_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn eine Speise konsumiert werden soll,
+   die nicht im eigenen Inventory liegt.
+   Wenn diese Property leer ist, kann man die Speise dann sogar
+   konsumieren!
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "Vielleicht solltest Du @WEN1 vorher nehmen."
+
+
+SIEHE AUCH
+==========
+
+   wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_ENV_TOO_HEAVY_MSG b/doc/props/P_ENV_TOO_HEAVY_MSG
index 8c73ac1..23c1d6c 100644
--- a/doc/props/P_ENV_TOO_HEAVY_MSG
+++ b/doc/props/P_ENV_TOO_HEAVY_MSG
@@ -1,31 +1,50 @@
-NAME:
-    P_ENV_TOO_HEAVY_MSG                      "env_too_heavy_msg"                      
 
-DEFINIERT IN:
-    /sys/thing/moving.h
+P_ENV_TOO_HEAVY_MSG
+*******************
 
-BESCHREIBUNG:
-     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
-     versucht, ein Objekt in einen Behaelter zu legen, und dieser dann fuer
-     sein Environment zu schwer wird.
-     Die Property ist im Behaelter zu setzen.
-     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
-     so wird die Standardmeldung ausgegeben.
-     ("<Behaelter> wuerde dir dann zu schwer werden.")
-     Der String in der Property wird noch durch replace_personal()
-     verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
-     zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
-     umgebrochen.
-     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
-     ganz.
 
-BEISPIELE:
-     SetProp(P_ENV_TOO_HEAVY_MSG, "Mit @WEM1 koenntest du den Rucksack nicht"
-                                  " mehr tragen.");
+NAME
+====
 
-SIEHE AUCH:
-     Aehnliches: P_TOO_HEAVY_MSG, P_TOO_MANY_MSG, P_NOINSERT_MSG,
-                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
-                 P_WEAR_MSG, P_WIELD_MSG
-     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+   P_ENV_TOO_HEAVY_MSG                      "env_too_heavy_msg"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
+   versucht, ein Objekt in einen Behaelter zu legen, und dieser dann fuer
+   sein Environment zu schwer wird.
+   Die Property ist im Behaelter zu setzen.
+   Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+   so wird die Standardmeldung ausgegeben.
+   ("<Behaelter> wuerde dir dann zu schwer werden.")
+   Der String in der Property wird noch durch replace_personal()
+   verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
+   zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+   umgebrochen.
+   Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+   ganz.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_ENV_TOO_HEAVY_MSG, "Mit @WEM1 koenntest du den Rucksack nicht"
+                                " mehr tragen.");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_TOO_HEAVY_MSG, P_TOO_MANY_MSG, P_NOINSERT_MSG,
+               P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+               P_WEAR_MSG, P_WIELD_MSG
+   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
diff --git a/doc/props/P_EQUIP_TIME b/doc/props/P_EQUIP_TIME
index 71b2f35..ee0d07f 100644
--- a/doc/props/P_EQUIP_TIME
+++ b/doc/props/P_EQUIP_TIME
@@ -1,26 +1,39 @@
+
 P_EQUIP_TIME
+************
 
-NAME:
-      P_EQUIP_TIME			"equip_time"
 
-DEFINIERT IN:
-      /sys/combat.h
+NAME
+====
 
-BESCHREIBUNG:
-      Innerhalb von Waffen und Ruestungen wird in dieser Property
-      registriert, wann diese zuletzt gezueckt bzw. angezogen wurden.
-      Innerhalb der Funktionen wield_me() in '/std/weapon/combat' bzw.
-      DoWear() in '/std/armour/combat' wird hierbei jeweils folgende Aktion
-      ausgefuehrt:
-	SetProp(P_EQUIP_TIME,time());
+   P_EQUIP_TIME                      "equip_time"
 
-SIEHE AUCH:
-      Verwandt:		P_LAST_USE
-      Waffen:		P_UNWIELD_TIME
-			DoWield()
-      Ruestungen:	DoWear()
-      Sonstiges:	time()
-			/std/weapon/combat.c, /std/armour/combat.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Innerhalb von Waffen und Ruestungen wird in dieser Property
+   registriert, wann diese zuletzt gezueckt bzw. angezogen wurden.
+   Innerhalb der Funktionen wield_me() in '/std/weapon/combat' bzw.
+   DoWear() in '/std/armour/combat' wird hierbei jeweils folgende Aktion
+   ausgefuehrt:
+     SetProp(P_EQUIP_TIME,time());
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:         P_LAST_USE
+   Waffen:           P_UNWIELD_TIME
+                     DoWield()
+   Ruestungen:       DoWear()
+   Sonstiges:        time()
+                     /std/weapon/combat.c, /std/armour/combat.c
+
 Last modified: Sun Jul 26 23:59:12 1998 by Patryn
diff --git a/doc/props/P_EVAL_FACTORS b/doc/props/P_EVAL_FACTORS
index 04e881e..ed83d4e 100644
--- a/doc/props/P_EVAL_FACTORS
+++ b/doc/props/P_EVAL_FACTORS
@@ -1,8 +1,21 @@
-NAME:
-    P_EVAL_FACTORS                "inpc_eval_factors"           
 
-DEFINIERT IN:
-    /sys/inpc/eval.h
+P_EVAL_FACTORS
+**************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_EVAL_FACTORS                "inpc_eval_factors"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/eval.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_EVAL_OFFSETS b/doc/props/P_EVAL_OFFSETS
index d82ef39..e571f51 100644
--- a/doc/props/P_EVAL_OFFSETS
+++ b/doc/props/P_EVAL_OFFSETS
@@ -1,8 +1,21 @@
-NAME:
-    P_EVAL_OFFSETS                "inpc_eval_offsets"           
 
-DEFINIERT IN:
-    /sys/inpc/eval.h
+P_EVAL_OFFSETS
+**************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_EVAL_OFFSETS                "inpc_eval_offsets"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/eval.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_EXITS b/doc/props/P_EXITS
index 9a90c60..c31bac3 100644
--- a/doc/props/P_EXITS
+++ b/doc/props/P_EXITS
@@ -1,24 +1,45 @@
-NAME:
-    P_EXITS                       "exits"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_EXITS
+*******
 
-BESCHREIBUNG:
-    Mapping (der Breite 2) aller unmittelbar sichtbaren Ausgaenge mit
-    zugehoerigen Nachbarraeumen und der jeweiligen Bewegungsmeldung.
 
-BEMERKUNG:
-    Enthaelt auch SpecialExits, bei der Abfrage mit QueryProp() werden
-    diese jedoch ausgefiltert.
-    
-    Zugriff nur mit den dafuer vorgesehenen Funktionen, bitte nicht aendern.
-  
-SIEHE AUCH:
-     AddExit(), AddSpecialExit(), GetExits(),
-     RemoveExit(), RemoveSpecialExit(),
-     GuardExit(),
-     H_HOOK_EXIT_USE, P_SPECIAL_EXITS, P_HIDE_EXITS, /std/room/exits.c
-     ausgaenge
+NAME
+====
+
+   P_EXITS                       "exits"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Mapping (der Breite 2) aller unmittelbar sichtbaren Ausgaenge mit
+   zugehoerigen Nachbarraeumen und der jeweiligen Bewegungsmeldung.
+
+
+BEMERKUNG
+=========
+
+   Enthaelt auch SpecialExits, bei der Abfrage mit QueryProp() werden
+   diese jedoch ausgefiltert.
+
+
+
+   Zugriff nur mit den dafuer vorgesehenen Funktionen, bitte nicht aendern.
+
+
+SIEHE AUCH
+==========
+
+   AddExit(), AddSpecialExit(), GetExits(),
+   RemoveExit(), RemoveSpecialExit(),
+   GuardExit(),
+   H_HOOK_EXIT_USE, P_SPECIAL_EXITS, P_HIDE_EXITS, /std/room/exits.c
+   ausgaenge
 
 Letzte Aenderung: 22.12.2016, Bugfix
diff --git a/doc/props/P_EXTRA_LOOK b/doc/props/P_EXTRA_LOOK
new file mode 100644
index 0000000..e4f050e
--- /dev/null
+++ b/doc/props/P_EXTRA_LOOK
@@ -0,0 +1,52 @@
+
+P_EXTRA_LOOK
+************
+
+
+NAME
+====
+
+   P_EXTRA_LOOK                    "extralook"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+          Diese Property enthaelt einen String. Sie wird entweder in Lebewesen
+          direkt oder in Objekten gesetzt, die im Besitz von Lebewesen
+          sein koennen.
+          Diese Strings erscheinen dann zusaetzlich in der Langbeschreibung
+          des Lebewesens bzw. des Besitzers (wenn das Objekt sich direkt im
+   Lebewesen befindet, jedoch nicht in einem Behaelter im Lebewesen).
+          Fuer den Zeilenumbruch muss man selbst sorgen.
+
+
+BEISPIEL
+========
+
+   Ein Spieler hat eine Pfeife im Mund. In dieser Pfeife setzt man z.B.
+   in der Funktion zum Pfeife Rauchen folgendes:
+     SetProp(P_EXTRA_LOOK,break_string(
+    this_player()->Name(WER)+" ist ganz umnebelt.",78);
+
+
+BEMERKUNG
+=========
+
+   NUR dann benutzen, wenn ihr auch unabhaengig vom Extralook ein Objekt im
+   Spieler benoetigt, ansonsten IMMER AddExtraLook() verwenden.
+
+
+SIEHE AUCH
+==========
+
+         long(), /std/living/description.c, /std/player/base.c
+   AddExtraLook(), RemoveExtraLook()
+
+16.02.2017, Bugfix
diff --git a/doc/props/P_FAO b/doc/props/P_FAO
index 62f33e1..33f673e 100644
--- a/doc/props/P_FAO
+++ b/doc/props/P_FAO
@@ -1,19 +1,33 @@
+
 P_FAO
+*****
 
-NAME:
-     P_FAO      "fraternitasdonoarchmagorum"
 
-DEFINIERT IN:
-     <player/fao.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Fraternitas-relevante Property.
+   P_FAO      "fraternitasdonoarchmagorum"
 
-     Genaue Informationen unbekannt.
-     Schreibender Zugriff ist nur EMs oder dem FAOMASTER (s. Headerfile)
-     moeglich.
 
-SIEHE AUCH:
-     P_FAO_PORTALS
+DEFINIERT IN
+============
+
+   <player/fao.h>
+
+
+BESCHREIBUNG
+============
+
+   Fraternitas-relevante Property.
+
+   Genaue Informationen unbekannt.
+   Schreibender Zugriff ist nur EMs oder dem FAOMASTER (s. Headerfile)
+   moeglich.
+
+
+SIEHE AUCH
+==========
+
+   P_FAO_PORTALS
 
 1.September 2008 Gloinson
diff --git a/doc/props/P_FAO_PORTALS b/doc/props/P_FAO_PORTALS
index 465750a..5d80c90 100644
--- a/doc/props/P_FAO_PORTALS
+++ b/doc/props/P_FAO_PORTALS
@@ -1,22 +1,36 @@
+
 P_FAO_PORTALS
+*************
 
-NAME:
-     P_FAO_PORTALS      "fraternitasdonoarchmagorumPORTALS"
 
-DEFINIERT IN:
-     <player/fao.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Fraternitas-relevante Property.
+   P_FAO_PORTALS      "fraternitasdonoarchmagorumPORTALS"
 
-     Enthaelt eine Array mit einer Liste der ueber die Fraternitas
-     gefundenen und benutzbaren Seher-Portale.
 
-     Genaue Informationen unbekannt.
-     Schreibender Zugriff ist nur EMs oder dem FAOMASTER (s. Headerfile) 
-     moeglich.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     P_FAO_PORTALS, P_SEERDOORS
-     
+   <player/fao.h>
+
+
+BESCHREIBUNG
+============
+
+   Fraternitas-relevante Property.
+
+   Enthaelt eine Array mit einer Liste der ueber die Fraternitas
+   gefundenen und benutzbaren Seher-Portale.
+
+   Genaue Informationen unbekannt.
+   Schreibender Zugriff ist nur EMs oder dem FAOMASTER (s. Headerfile)
+   moeglich.
+
+
+SIEHE AUCH
+==========
+
+   P_FAO_PORTALS, P_SEERDOORS
+
 1.September 2008 Gloinson
diff --git a/doc/props/P_FISH b/doc/props/P_FISH
index c694c09..0fa259f 100644
--- a/doc/props/P_FISH
+++ b/doc/props/P_FISH
@@ -1,75 +1,92 @@
-NAME:
-    P_FISH                        "fish"
 
-DEFINIERT IN:
-    /sys/fishing.h
+P_FISH
+******
 
-BESCHREIBUNG:
-    Enthaelt Einstellungen zu allem, was mit Fischen zu tun hat. 
-    Kann in Fischen, Raeumen und Koedern gesetzt werden. Die verfuegbaren 
-    Optionen und Funktionsweisen sind in den nachfolgenden Abschnitten 
-    aufgefuehrt.
 
-    Fische:
-    *******
-    Die Property legt zusaetzliche Eigenschaften fest:
+NAME
+====
 
-      F_NOROTTEN
-        Fisch fault nicht; ggf. sollte hier auch gleich F_NOHEAL gesetzt 
-        werden, weil sonst eine unverderbliche tragbare Tanke erzeugt wuerde.
-      F_NOTHUNGRY
-        Fisch frisst Koeder nur, wenn er auch wirklich nachher an der Angel
-        haengt. Ist er zu schwer fuer die Angel und reisst ab, bleibt der
-        Koeder erhalten.
-      F_REPLACE
-        Fisch soll sich beim Entfernen von der Angel verwandeln. Hierzu ist
-        die Funktion ReplaceFish() im Fisch zu definieren, die sich um die
-        Verwandlung kuemmert (z.B. Monster clonen und Fisch zerstoeren; ein
-        Beispiel findet sich in /d/ebene/fraggle/angel2/obj/saegefisch.c).
-      F_NOHEAL
-        Fisch heilt nicht bei Verzehr
+   P_FISH                        "fish"
 
-    Raum (OPTIONAL):
-    ****************
-    Legt die Fischdichte des Gewaessers fest. Der eingestellte Wert wirkt 
-    sich auf die Wartezeit aus, die der Angler verbringen muss, bis ein 
-    Fisch anbeisst. Berechnung im Detail (alle Zahlenwerte in Sekunden):
-    - Basis-Wartezeit: delay = 80
-    - Die Werte von P_FISH von Raum und Koeder werden addiert:
-      summe = raum->QueryProp(P_FISH) + koeder->QueryProp(P_FISH)
-      -> positive Werte (Bonus) werden auf 60 begrenzt und mit Zufalls-
-         komponente von <delay> abgezogen:
-         delay -= random(summe)
-      -> negative Werte (Malus) werden auf -300 begrenzt und mit Zufalls-
-         komponente auf <delay> aufgeschlagen:
-         delay += random(-summe)
 
-    Zusaetzlich wird ein weiterer Malus auf die Wartezeit faellig, falls 
-    P_WATER in der Angel und/oder P_WATER im Koeder nicht zum aktuellen 
-    Gewaesser passen. Der Malus betraegt jeweils 60+random(60) Sekunden.
-    
-    Der Standardwert fuer P_FISH im Raum ist 0 und bedeutet 100 % Bestand.
-    Positive Werte erhoehen die Dichte, negative senken sie. Positive Werte 
-    sollten nicht >100 sein.
+DEFINIERT IN
+============
 
-    Sofern sich die Werte fuer P_FISH in den empfohlenen Grenzen bewegen,
-    koennen Abzuege fuer falsches Gewaesser ueblicherweise kaum durch
-    Boni auf Angel oder Koeder kompensiert werden. Ausserdem ist zu
-    bedenken, dass es keine Boni fuer richtige Gewaesserwahl gibt.
- 
+   /sys/fishing.h
 
-    Koeder (OPTIONAL):
-    ******************
-    Ein Koeder kann mittels P_FISH die Fischdichte modifizieren, um hierueber
-    ein besseres Beissen der Fische zu simulieren (reduziert die Wartezeit
-    beim Angeln, siehe oben unter "Raum"). Wenn also der Raum einen Wert
-    von -100 gesetzt hat und der Koeder +100, entspricht die Fischdichte im 
-    Gewaesser wieder dem Normalwert.
 
-SIEHE AUCH:
+BESCHREIBUNG
+============
 
-    Properties: P_WATER
-    Methoden:   GetAquarium(L)
+   Enthaelt Einstellungen zu allem, was mit Fischen zu tun hat.
+   Kann in Fischen, Raeumen und Koedern gesetzt werden. Die verfuegbaren
+   Optionen und Funktionsweisen sind in den nachfolgenden Abschnitten
+   aufgefuehrt.
 
-------------------------------------------------------------------------------
+   Fische:
+   *******
+   Die Property legt zusaetzliche Eigenschaften fest:
+
+     F_NOROTTEN
+       Fisch fault nicht; ggf. sollte hier auch gleich F_NOHEAL gesetzt
+       werden, weil sonst eine unverderbliche tragbare Tanke erzeugt wuerde.
+     F_NOTHUNGRY
+       Fisch frisst Koeder nur, wenn er auch wirklich nachher an der Angel
+       haengt. Ist er zu schwer fuer die Angel und reisst ab, bleibt der
+       Koeder erhalten.
+     F_REPLACE
+       Fisch soll sich beim Entfernen von der Angel verwandeln. Hierzu ist
+       die Funktion ReplaceFish() im Fisch zu definieren, die sich um die
+       Verwandlung kuemmert (z.B. Monster clonen und Fisch zerstoeren; ein
+       Beispiel findet sich in /d/ebene/fraggle/angel2/obj/saegefisch.c).
+     F_NOHEAL
+       Fisch heilt nicht bei Verzehr
+
+   Raum (OPTIONAL):
+   ****************
+   Legt die Fischdichte des Gewaessers fest. Der eingestellte Wert wirkt
+   sich auf die Wartezeit aus, die der Angler verbringen muss, bis ein
+   Fisch anbeisst. Berechnung im Detail (alle Zahlenwerte in Sekunden):
+   - Basis-Wartezeit: delay = 80
+   - Die Werte von P_FISH von Raum und Koeder werden addiert:
+     summe = raum->QueryProp(P_FISH) + koeder->QueryProp(P_FISH)
+     -> positive Werte (Bonus) werden auf 60 begrenzt und mit Zufalls-
+        komponente von <delay> abgezogen:
+        delay -= random(summe)
+     -> negative Werte (Malus) werden auf -300 begrenzt und mit Zufalls-
+        komponente auf <delay> aufgeschlagen:
+        delay += random(-summe)
+
+   Zusaetzlich wird ein weiterer Malus auf die Wartezeit faellig, falls
+   P_WATER in der Angel und/oder P_WATER im Koeder nicht zum aktuellen
+   Gewaesser passen. Der Malus betraegt jeweils 60+random(60) Sekunden.
+
+
+
+   Der Standardwert fuer P_FISH im Raum ist 0 und bedeutet 100 % Bestand.
+   Positive Werte erhoehen die Dichte, negative senken sie. Positive Werte
+   sollten nicht >100 sein.
+
+   Sofern sich die Werte fuer P_FISH in den empfohlenen Grenzen bewegen,
+   koennen Abzuege fuer falsches Gewaesser ueblicherweise kaum durch
+   Boni auf Angel oder Koeder kompensiert werden. Ausserdem ist zu
+   bedenken, dass es keine Boni fuer richtige Gewaesserwahl gibt.
+
+
+
+   Koeder (OPTIONAL):
+   ******************
+   Ein Koeder kann mittels P_FISH die Fischdichte modifizieren, um hierueber
+   ein besseres Beissen der Fische zu simulieren (reduziert die Wartezeit
+   beim Angeln, siehe oben unter "Raum"). Wenn also der Raum einen Wert
+   von -100 gesetzt hat und der Koeder +100, entspricht die Fischdichte im
+   Gewaesser wieder dem Normalwert.
+
+
+SIEHE AUCH
+==========
+
+   Properties: P_WATER
+   Methoden:   GetAquarium(L)
+
 Zuletzt geaendert: 2014-Aug-21, Arathorn
diff --git a/doc/props/P_FLAGS b/doc/props/P_FLAGS
index 3c54aea..3962aed 100644
--- a/doc/props/P_FLAGS
+++ b/doc/props/P_FLAGS
@@ -1,8 +1,21 @@
-NAME:
-    P_FLAGS                       "can_flags"                   
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_FLAGS
+*******
 
-BESCHREIBUNG:
-     Flags des Spielers
+
+NAME
+====
+
+   P_FLAGS                       "can_flags"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Flags des Spielers
diff --git a/doc/props/P_FOLLOW_SILENT b/doc/props/P_FOLLOW_SILENT
index 7662ad1..6dd07b3 100644
--- a/doc/props/P_FOLLOW_SILENT
+++ b/doc/props/P_FOLLOW_SILENT
@@ -1,9 +1,22 @@
-NAME:
-    P_FOLLOW_SILENT               "follow_silent"               
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_FOLLOW_SILENT
+***************
 
-BESCHREIBUNG:
-     Wenn diese Property 1 ist, wird der MOVE vom verfolge Silent ausge-
-     fuehrt.
+
+NAME
+====
+
+   P_FOLLOW_SILENT               "follow_silent"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn diese Property 1 ist, wird der MOVE vom verfolge Silent ausge-
+   fuehrt.
diff --git a/doc/props/P_FOOD b/doc/props/P_FOOD
index 769694f..3858431 100644
--- a/doc/props/P_FOOD
+++ b/doc/props/P_FOOD
@@ -1,24 +1,38 @@
-NAME:
-     P_FOOD                        "food"
 
-DEFINIERT IN:
-     /sys/living/life.h
+P_FOOD
+******
 
-BESCHREIBUNG:
 
-     - Lebewesen
-       Numerischer Wert fuer den Saettigungsgrad eines Lebewesens.
-       Der maximale Wert steht in P_MAX_FOOD.
+NAME
+====
 
-     - Speisen/Kneipen
-       Numerischer Wert fuer den Saettigungsgrad einer Portion einer
-       Speise. Ist diese Property nicht gesetzt, kann man diese
-       Speise nicht essen. Eine funktionierende Speise _muss_ entweder
-       P_FOOD oder P_DRINK groesser 0 gesetzt haben.
+   P_FOOD                        "food"
 
-SIEHE AUCH:
-     P_MAX_FOOD, P_FOOD_DELAY, consume,
-     P_DRINK, P_ALCOHOL, wiz/food
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   - Lebewesen
+     Numerischer Wert fuer den Saettigungsgrad eines Lebewesens.
+     Der maximale Wert steht in P_MAX_FOOD.
+
+   - Speisen/Kneipen
+     Numerischer Wert fuer den Saettigungsgrad einer Portion einer
+     Speise. Ist diese Property nicht gesetzt, kann man diese
+     Speise nicht essen. Eine funktionierende Speise _muss_ entweder
+     P_FOOD oder P_DRINK groesser 0 gesetzt haben.
+
+
+SIEHE AUCH
+==========
+
+   P_MAX_FOOD, P_FOOD_DELAY, consume,
+   P_DRINK, P_ALCOHOL, wiz/food
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_FOOD_DELAY b/doc/props/P_FOOD_DELAY
index 11ccf6e..f4eb2df 100644
--- a/doc/props/P_FOOD_DELAY
+++ b/doc/props/P_FOOD_DELAY
@@ -1,10 +1,23 @@
-NAME:
-    P_FOOD_DELAY                 "food_delay"                     
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_FOOD_DELAY
+************
 
-BESCHREIBUNG:
-     Anzahl der heart_beats, bis P_FOOD um einen Punkt sinkt.
-     Aenderungen dieser Property in Spielern beduerfen der 
-     Genehmigung des EM fuer Balance.
+
+NAME
+====
+
+   P_FOOD_DELAY                 "food_delay"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der heart_beats, bis P_FOOD um einen Punkt sinkt.
+   Aenderungen dieser Property in Spielern beduerfen der
+   Genehmigung des EM fuer Balance.
diff --git a/doc/props/P_FOOD_FULL_MSG b/doc/props/P_FOOD_FULL_MSG
index a331ec5..f5c1bce 100644
--- a/doc/props/P_FOOD_FULL_MSG
+++ b/doc/props/P_FOOD_FULL_MSG
@@ -1,24 +1,45 @@
-NAME:
-     P_FOOD_FULL_MSG               "std_food_full_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_FOOD_FULL_MSG
+***************
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn eine Speise gegessen werden soll,
-     obwohl dieser nichts mehr essen kann.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "Du bist zu satt, das schaffst Du nicht mehr."
 
-SIEHE AUCH:
-     P_FOOD, P_MAX_FOOD, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_FOOD_FULL_MSG               "std_food_full_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn eine Speise gegessen werden soll,
+   obwohl dieser nichts mehr essen kann.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "Du bist zu satt, das schaffst Du nicht mehr."
+
+
+SIEHE AUCH
+==========
+
+   P_FOOD, P_MAX_FOOD, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_FORCE_MURDER_MSG b/doc/props/P_FORCE_MURDER_MSG
index cf0157c..709ef4e 100644
--- a/doc/props/P_FORCE_MURDER_MSG
+++ b/doc/props/P_FORCE_MURDER_MSG
@@ -1,39 +1,57 @@
-NAME:
-	P_FORCE_MURDER_MSG		"force_murder_msg"
 
-DEFINIERT IN:
-	/sys/properties.h
+P_FORCE_MURDER_MSG
+******************
 
-BESCHREIBUNG:
-	Ob der Tod eines NPCs auf dem Moerder-Kanal erscheint, haengt davon
-	ab, wie oft und welche Art von NPCs in der letzten Zeit getoetet
-	wurden. Zum Beispiel ist es eher selten, dass ein schwacher NPC auf
-	dem Kanal erscheint, wenn kuerzlich viele starke NPCs getoetet
-	wurden. Mittels der Property P_FORCE_MURDER_MSG kann man auf diese
-	Regelung Einfluss nehmen.
-	Ein Wert groesser Null erzwingt die Meldung auf dem Moerder-Kanal,
-	ein Wert kleiner Null unterdrueckt sie generell. Letzteres ist
-	insbesondere fuer allzuoft getoetete Monster sinnvoll, um den
-	Moerder-Kanal nicht uebermaessig zu belasten. Mit dem Erzwingen der
-	Meldungen sollte man somit vorsichtig sein: Weniger ist oftmals
-	besser als zu viel!
-	Die Defaulteinstellung von P_FORCE_MURDER_MSG ist natuerlich Null
-	und fuehrt zur bereits beschriebenen opferabhaengigen Meldung.
 
-BEISPIELE:
-	Ein grosser starker NPC, der getoetet wurde, sollte schon eine tolle
-	Meldung auf dem Moerder-Kanal erzeugen. In der Property
-	P_MURDER_MSG koennen hierzu alternative Texte zu den normal per
-	Zufall ausgewaehlten angegeben werden:
-	  SetProp(P_MURDER_MSG,
-                  "Nicht schlecht, aber das schafft eh nur einer!");
-	  SetProp(P_FORCE_MURDER_MSG,1);
-	Zwar ist es bei grossen NPCs hinreichend wahrscheinlich, dass es
-	infolge derer Staerke zur automatischen Ausgabe einer Moerdermeldung
-	kommt, aber mit der letzten Zeile wurde dies absolut sichergestellt.
+NAME
+====
 
-SIEHE AUCH:
-	P_MURDER_MSG, P_ZAP_MSG, P_KILL_MSG, P_DIE_MSG, P_CORPSE, P_NOCORPSE
+   P_FORCE_MURDER_MSG              "force_murder_msg"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Ob der Tod eines NPCs auf dem Moerder-Kanal erscheint, haengt davon
+   ab, wie oft und welche Art von NPCs in der letzten Zeit getoetet
+   wurden. Zum Beispiel ist es eher selten, dass ein schwacher NPC auf
+   dem Kanal erscheint, wenn kuerzlich viele starke NPCs getoetet
+   wurden. Mittels der Property P_FORCE_MURDER_MSG kann man auf diese
+   Regelung Einfluss nehmen.
+   Ein Wert groesser Null erzwingt die Meldung auf dem Moerder-Kanal,
+   ein Wert kleiner Null unterdrueckt sie generell. Letzteres ist
+   insbesondere fuer allzuoft getoetete Monster sinnvoll, um den
+   Moerder-Kanal nicht uebermaessig zu belasten. Mit dem Erzwingen der
+   Meldungen sollte man somit vorsichtig sein: Weniger ist oftmals
+   besser als zu viel!
+   Die Defaulteinstellung von P_FORCE_MURDER_MSG ist natuerlich Null
+   und fuehrt zur bereits beschriebenen opferabhaengigen Meldung.
+
+
+BEISPIELE
+=========
+
+   Ein grosser starker NPC, der getoetet wurde, sollte schon eine tolle
+   Meldung auf dem Moerder-Kanal erzeugen. In der Property
+   P_MURDER_MSG koennen hierzu alternative Texte zu den normal per
+   Zufall ausgewaehlten angegeben werden:
+     SetProp(P_MURDER_MSG,
+             "Nicht schlecht, aber das schafft eh nur einer!");
+     SetProp(P_FORCE_MURDER_MSG,1);
+   Zwar ist es bei grossen NPCs hinreichend wahrscheinlich, dass es
+   infolge derer Staerke zur automatischen Ausgabe einer Moerdermeldung
+   kommt, aber mit der letzten Zeile wurde dies absolut sichergestellt.
+
+
+SIEHE AUCH
+==========
+
+   P_MURDER_MSG, P_ZAP_MSG, P_KILL_MSG, P_DIE_MSG, P_CORPSE, P_NOCORPSE
+
 Last modified: Tue Nov 10 02:15:26 1998 by Patryn
diff --git a/doc/props/P_FREE_HANDS b/doc/props/P_FREE_HANDS
index 6143cad..c8311cc 100644
--- a/doc/props/P_FREE_HANDS
+++ b/doc/props/P_FREE_HANDS
@@ -1,22 +1,40 @@
+
 P_FREE_HANDS
-NAME:
-    P_FREE_HANDS                  "free_hands"
+************
 
-DEFINIERT IN:
-    /sys/living/combat.h
 
-BESCHREIBUNG:
-    Anzahl der freien Haende.
-    Effektiv nur ein die Differenz von P_MAX_HANDS und P_USED_HANDS.
+NAME
+====
 
-BEMERKUNGEN:
-    Keine echte Property. Die Methode /std/living/combat::_query_free_hands
-    stellt die Daten zusammen. Nicht setzen!
+   P_FREE_HANDS                  "free_hands"
 
-SIEHE AUCH:
-    P_HANDS, P_HANDS_USED_BY
-    P_MAX_HANDS, P_USED_HANDS
-    UseHands, FreeHands
-    /std/weapon.c, /std/spellbook.c
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der freien Haende.
+   Effektiv nur ein die Differenz von P_MAX_HANDS und P_USED_HANDS.
+
+
+BEMERKUNGEN
+===========
+
+   Keine echte Property. Die Methode /std/living/combat::_query_free_hands
+   stellt die Daten zusammen. Nicht setzen!
+
+
+SIEHE AUCH
+==========
+
+   P_HANDS, P_HANDS_USED_BY
+   P_MAX_HANDS, P_USED_HANDS
+   UseHands, FreeHands
+   /std/weapon.c, /std/spellbook.c
 
 1. Okt 2012, Gloinson
diff --git a/doc/props/P_FRIEND b/doc/props/P_FRIEND
index ded080c..b22203b 100644
--- a/doc/props/P_FRIEND
+++ b/doc/props/P_FRIEND
@@ -1,24 +1,39 @@
-NAME:
-	P_FRIEND			"friend"
 
-DEFINIERT IN:
-	<combat.h>
+P_FRIEND
+********
 
-BESCHREIBUNG:
-	Setzt man diese Property in einem NPC auf einen Wert ungleich Null,
-	so wird der NPC bei Zauberspruechen, die auf bestimmte Gruppen
-	wirken, der Gruppe der Spieler und nicht der Gruppe der NPCs
-	zugeordnet. Ausserdem wird der NPC bei einem "toete alle" nicht mit
-	angegriffen.
-	Wurde der NPC einem Spieler per AssocMember() zugeordnet, so
-	befindet sich der NPC automatisch im jeweiligen Team des Spielers
-	 (moeglichst auch in der selben Kampfreihe), und die Property hat
-	dann automatisch das Spielerobjekt als Wert.
-	Da dieser Wert in diesem Fall natuerlich ungleich Null ist, wird der
-	NPC dann auch der Gruppe der Spieler zugeordnet.
 
-SIEHE AUCH:
-	FindGroup(), AssocMember(), P_TEAM_ASSOC_MEMBERS, /std/living/team.c
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_FRIEND                        "friend"
+
+
+DEFINIERT IN
+============
+
+   <combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Setzt man diese Property in einem NPC auf einen Wert ungleich Null,
+   so wird der NPC bei Zauberspruechen, die auf bestimmte Gruppen
+   wirken, der Gruppe der Spieler und nicht der Gruppe der NPCs
+   zugeordnet. Ausserdem wird der NPC bei einem "toete alle" nicht mit
+   angegriffen.
+   Wurde der NPC einem Spieler per AssocMember() zugeordnet, so
+   befindet sich der NPC automatisch im jeweiligen Team des Spielers
+    (moeglichst auch in der selben Kampfreihe), und die Property hat
+   dann automatisch das Spielerobjekt als Wert.
+   Da dieser Wert in diesem Fall natuerlich ungleich Null ist, wird der
+   NPC dann auch der Gruppe der Spieler zugeordnet.
+
+
+SIEHE AUCH
+==========
+
+   FindGroup(), AssocMember(), P_TEAM_ASSOC_MEMBERS, /std/living/team.c
+
 Last modified: Tue Dec 29 17:02:55 1998 by Patryn
diff --git a/doc/props/P_FROG b/doc/props/P_FROG
index 5f64eac..71badbe 100644
--- a/doc/props/P_FROG
+++ b/doc/props/P_FROG
@@ -1,8 +1,21 @@
-NAME:
-    P_FROG                        "frog"                        
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_FROG
+******
 
-BESCHREIBUNG:
-     Gesetzt, wenn der Spieler ein Frosch ist.
+
+NAME
+====
+
+   P_FROG                        "frog"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt, wenn der Spieler ein Frosch ist.
diff --git a/doc/props/P_FUEL b/doc/props/P_FUEL
index 890ca60..79f8515 100644
--- a/doc/props/P_FUEL
+++ b/doc/props/P_FUEL
@@ -1,26 +1,48 @@
-NAME:
-    P_FUEL                        "fuel"                        
 
-DEFINIERT IN:
-    /sys/properties.h
+P_FUEL
+******
 
-BESCHREIBUNG:
-     Numerischer Wert fuer die Zeitdauer, die die Lichtquelle noch
-     leuchten kann. Standardmaessig ist der Wert auf 20 gesetzt.
 
-     Setzt man die Property auf einen Wert, der groesser ist als der vorige
-     Maximalwert, wird dieser auf den neuen Wert erhoeht. Aendert man den
-     Brennstoffvorrat der Lichtquelle hingegen mittels AddFuel(), so wird
-     der Wert von P_FUEL ueber den Maximalwert hinaus erhoeht.
+NAME
+====
 
-HINWEIS:
-     Fuer Aenderungen an der Property kann auch die Funktion AddFuel()
-     verwendet werden. 
+   P_FUEL                        "fuel"
 
-SIEHE AUCH:
-     Basisklassen: /std/lightsource.c
-     Properties:   P_LIGHTDESC, P_DO_DESTRUCT, P_LIGHT
-     Methoden:     AddFuel(L)
 
-LETZTE AENDERUNG:
-    22. Dez. 2015, Arathorn
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert fuer die Zeitdauer, die die Lichtquelle noch
+   leuchten kann. Standardmaessig ist der Wert auf 20 gesetzt.
+
+   Setzt man die Property auf einen Wert, der groesser ist als der vorige
+   Maximalwert, wird dieser auf den neuen Wert erhoeht. Aendert man den
+   Brennstoffvorrat der Lichtquelle hingegen mittels AddFuel(), so wird
+   der Wert von P_FUEL ueber den Maximalwert hinaus erhoeht.
+
+
+HINWEIS
+=======
+
+   Fuer Aenderungen an der Property kann auch die Funktion AddFuel()
+   verwendet werden.
+
+
+SIEHE AUCH
+==========
+
+   Basisklassen: /std/lightsource.c
+   Properties:   P_LIGHTDESC, P_DO_DESTRUCT, P_LIGHT
+   Methoden:     AddFuel(L)
+
+
+LETZTE AENDERUNG
+================
+
+   22. Dez. 2015, Arathorn
diff --git a/doc/props/P_FUNC_MSG b/doc/props/P_FUNC_MSG
index b4f9d1e..adcca1a 100644
--- a/doc/props/P_FUNC_MSG
+++ b/doc/props/P_FUNC_MSG
@@ -1,21 +1,40 @@
-NAME:
-    P_FUNC_MSG                    "func_msg"                    
 
-DEFINIERT IN:
-    /sys/room/description.h
+P_FUNC_MSG
+**********
 
-BESCHREIBUNG:
-     Liste mit Funktionen, die zufaellig im Raum aufgerufen werden.
 
-     Hier ist nur eine zur rufende lokale Methode als String oder eine
-     Sammlung davon als Stringarray gespeichert.
+NAME
+====
 
-ANMERKUNGEN:
-     Bitte AddRoomMessage() zum Hinzufuegen/Ueberschreiben benutzen!
+   P_FUNC_MSG                    "func_msg"
 
-SIEHE AUCH:
-     LFuns:    AddRoomMessage()
-     Verwandt: tell_room(), ReceiveMsg()
-     Props:    P_ROOM_MSG, P_MSG_PROB
+
+DEFINIERT IN
+============
+
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   Liste mit Funktionen, die zufaellig im Raum aufgerufen werden.
+
+   Hier ist nur eine zur rufende lokale Methode als String oder eine
+   Sammlung davon als Stringarray gespeichert.
+
+
+ANMERKUNGEN
+===========
+
+   Bitte AddRoomMessage() zum Hinzufuegen/Ueberschreiben benutzen!
+
+
+SIEHE AUCH
+==========
+
+   LFuns:    AddRoomMessage()
+   Verwandt: tell_room(), ReceiveMsg()
+   Props:    P_ROOM_MSG, P_MSG_PROB
 
 2.Feb 2016 Gloinson
diff --git a/doc/props/P_FW_ALWAYS_READABLE b/doc/props/P_FW_ALWAYS_READABLE
index 31700ed..f770431 100644
--- a/doc/props/P_FW_ALWAYS_READABLE
+++ b/doc/props/P_FW_ALWAYS_READABLE
@@ -1,8 +1,21 @@
-NAME:
-    P_FW_ALWAYS_READABLE          "fw_always_readable"          
 
-DEFINIERT IN:
-    /sys/properties.h
+P_FW_ALWAYS_READABLE
+********************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_FW_ALWAYS_READABLE          "fw_always_readable"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_FW_UNDERSTAND b/doc/props/P_FW_UNDERSTAND
index ff8f6e6..2884555 100644
--- a/doc/props/P_FW_UNDERSTAND
+++ b/doc/props/P_FW_UNDERSTAND
@@ -1,8 +1,21 @@
-NAME:
-    P_FW_UNDERSTAND               "fw_understand"               
 
-DEFINIERT IN:
-    /sys/properties.h
+P_FW_UNDERSTAND
+***************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_FW_UNDERSTAND               "fw_understand"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_GENDER b/doc/props/P_GENDER
index 93f73dc..c2a3f77 100644
--- a/doc/props/P_GENDER
+++ b/doc/props/P_GENDER
@@ -1,9 +1,22 @@
-NAME:
-    P_GENDER                      "gender"                      
 
-DEFINIERT IN:
-    /sys/thing/language.h
+P_GENDER
+********
 
-BESCHREIBUNG:
-     Grammatikalisches Geschlecht des Objektes:
-     (Definiert in language.h) MALE, FEMALE oder NEUTER
+
+NAME
+====
+
+   P_GENDER                      "gender"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/language.h
+
+
+BESCHREIBUNG
+============
+
+   Grammatikalisches Geschlecht des Objektes:
+   (Definiert in language.h) MALE, FEMALE oder NEUTER
diff --git a/doc/props/P_GHOST b/doc/props/P_GHOST
index 9cbf309..31c9f2d 100644
--- a/doc/props/P_GHOST
+++ b/doc/props/P_GHOST
@@ -1,8 +1,21 @@
-NAME:
-    P_GHOST                       "ghost"                       
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_GHOST
+*******
 
-BESCHREIBUNG:
-     Gesetzt, wenn der Spieler tot ist.
+
+NAME
+====
+
+   P_GHOST                       "ghost"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt, wenn der Spieler tot ist.
diff --git a/doc/props/P_GIVE_MSG b/doc/props/P_GIVE_MSG
index bd6a624..e21dbad 100644
--- a/doc/props/P_GIVE_MSG
+++ b/doc/props/P_GIVE_MSG
@@ -1,65 +1,83 @@
+
 P_GIVE_MSG
-NAME:
-     P_GIVE_MSG				"give_message"
+**********
 
-DEFINIERT IN:
-     /sys/living/put_and_get.h
 
-BESCHREIBUNG:
-     Mit P_GIVE_MSG kann man die Meldung, die man beim Uebergeben eines
-     Objektes bekommt, modifizieren.
+NAME
+====
 
-     Folgende Werte sind moeglich:
+   P_GIVE_MSG                         "give_message"
 
-     o 0
-       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
 
-     o NO_PNG_MSG	== -1
-       Es wird keinerlei Meldung ausgegeben
+DEFINIERT IN
+============
 
-     o Ein Array aus Strings
-       Der erste String wird an den Spieler ausgegeben, der zweite
-       (optionale) an den Raum, der dritte (ebenfalls optionale) an den
-       Empfaenger.
+   /sys/living/put_and_get.h
 
-       Die Strings werden durch die Funktion replace_personal() geparst.
-	Objekt1 - Spieler
-        Objekt2 - das Objekt, das uebergeben wird
-	Objekt3 - Empfaenger
 
-       Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
-       Raum. Beim Fehlen des dritten gibt es keine Meldung an den Empfaenger.
+BESCHREIBUNG
+============
 
-BEISPIEL:
-     void create() {
-      ...
-      SetProp( P_SHORT, "Etwas Sand" );
-      SetProp( P_LONG, break_string(
-	"Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+   Mit P_GIVE_MSG kann man die Meldung, die man beim Uebergeben eines
+   Objektes bekommt, modifizieren.
 
-      SetProp( P_NAME, "Sand" );
-      AddId( ({"sand"}) );
-      SetProp( P_GENDER, MALE );
+   Folgende Werte sind moeglich:
 
-      SetProp( P_GIVE_MSG, ({
-       "Du laesst @WEN2 in @WESSEN3 Haende rieseln.",
-       "@WER1 laesst @WENU2 in @WESSEN3 Haende rieseln.",
-       "@WER1 laesst @WENU2 in deine Haende rieseln."}));
-       ...
-      }
+   o 0
+     Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
 
-     Das ganze fuehrt bei Ugars "gib sand an peter" zu folgenden
-     Meldungen:
+   o NO_PNG_MSG       == -1
+     Es wird keinerlei Meldung ausgegeben
 
-     Ugar: "Du laesst den Sand in Peters Haende rieseln."
-     Raum: "Ugar laesst Sand in Peters Haende rieseln."
-     Peter: "Ugar laesst Sand in deine Haende rieseln."
+   o Ein Array aus Strings
+     Der erste String wird an den Spieler ausgegeben, der zweite
+     (optionale) an den Raum, der dritte (ebenfalls optionale) an den
+     Empfaenger.
 
-SIEHE AUCH:
-     Aehnliches: P_DROP_MSG, P_PUT_MSG, P_PICK_MSG, P_SHOW_MSG
-     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
-                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Sonstiges:  replace_personal(E), give(L), give_objects(L),
-		 give_notify(L), /std/living/put_and_get.c
+     Die Strings werden durch die Funktion replace_personal() geparst.
+      Objekt1 - Spieler
+      Objekt2 - das Objekt, das uebergeben wird
+      Objekt3 - Empfaenger
+
+     Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+     Raum. Beim Fehlen des dritten gibt es keine Meldung an den Empfaenger.
+
+
+BEISPIEL
+========
+
+   void create() {
+    ...
+    SetProp( P_SHORT, "Etwas Sand" );
+    SetProp( P_LONG, break_string(
+      "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+
+    SetProp( P_NAME, "Sand" );
+    AddId( ({"sand"}) );
+    SetProp( P_GENDER, MALE );
+
+    SetProp( P_GIVE_MSG, ({
+     "Du laesst @WEN2 in @WESSEN3 Haende rieseln.",
+     "@WER1 laesst @WENU2 in @WESSEN3 Haende rieseln.",
+     "@WER1 laesst @WENU2 in deine Haende rieseln."}));
+     ...
+    }
+
+   Das ganze fuehrt bei Ugars "gib sand an peter" zu folgenden
+   Meldungen:
+
+   Ugar: "Du laesst den Sand in Peters Haende rieseln."
+   Raum: "Ugar laesst Sand in Peters Haende rieseln."
+   Peter: "Ugar laesst Sand in deine Haende rieseln."
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_DROP_MSG, P_PUT_MSG, P_PICK_MSG, P_SHOW_MSG
+   Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+               P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Sonstiges:  replace_personal(E), give(L), give_objects(L),
+               give_notify(L), /std/living/put_and_get.c
 
 14. Maerz 2004 Gloinson
diff --git a/doc/props/P_GLOBAL_SKILLPROPS b/doc/props/P_GLOBAL_SKILLPROPS
index fc12c1e..1e3533b 100644
--- a/doc/props/P_GLOBAL_SKILLPROPS
+++ b/doc/props/P_GLOBAL_SKILLPROPS
@@ -1,27 +1,46 @@
-NAME:
-    P_GLOBAL_SKILLPROPS        "sm_global"                   
 
-DEFINIERT IN:
-    /sys/new_skills.h
+P_GLOBAL_SKILLPROPS
+*******************
 
-BESCHREIBUNG:
-    Diese Gilden- und Spellbookproperty enthaelt Eigenschaften, die
-    alle Spells eines Spellbooks bzw. alle Skills und Spells einer Gilde
-    haben sollen.
 
-BEISPIELE:
-    SetProp(P_GLOBAL_SKILLPROPS,
-      ([SI_SKILLRESTR_USE:     ([SR_FUN: #'spellTest]),
-        OFFSET(SI_SKILLLEARN): #'learnOffset,
-        OFFSET(SI_SPELLCOST):  #'costOffset,
-        FACTOR(SI_SPELLCOST):  #'costFactor]));
+NAME
+====
 
-SIEHE AUCH:
-    GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
-    * Properties:     P_GUILD_SKILLS
-    Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
-    * Verwalten:      AddSpell, QuerySpell
-    * Properties:     P_SB_SPELLS
-    Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+   P_GLOBAL_SKILLPROPS        "sm_global"
 
-3. Okt 2011 Gloinson
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Gilden- und Spellbookproperty enthaelt Eigenschaften, die
+   alle Spells eines Spellbooks bzw. alle Skills und Spells einer Gilde
+   haben sollen.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_GLOBAL_SKILLPROPS,
+     ([SI_SKILLRESTR_USE:     ([SR_FUN: #'spellTest]),
+       OFFSET(SI_SKILLLEARN): #'learnOffset,
+       OFFSET(SI_SPELLCOST):  #'costOffset,
+       FACTOR(SI_SPELLCOST):  #'costFactor]));
+
+
+SIEHE AUCH
+==========
+
+   GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
+   * Properties:     P_GUILD_SKILLS
+   Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
+   * Verwalten:      AddSpell, QuerySpell
+   * Properties:     P_SB_SPELLS
+   Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+
+3. Okt 2011 Gloinson
diff --git a/doc/props/P_GUARD b/doc/props/P_GUARD
index ebeb989..7128df6 100644
--- a/doc/props/P_GUARD
+++ b/doc/props/P_GUARD
@@ -1,50 +1,70 @@
+
 P_GUARD
-NAME:
-     P_GUARD				"guard"
-
-DEFINIERT IN:
-     /sys/guard.h
-
-BESCHREIBUNG:
-     Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf
-     oder nicht. Abgefragt werden muss dies von den Items oder Spells, die
-     den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch
-     darauf geachtet!
-
-     Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger)
-     Zahlenwert zwischen 0 und 100, der hierbei den Grad der
-     'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen
-     immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen
-     gibt es die Wahrscheinlichkeit dafuer an.
-
-BEMERKUNGEN:
-     - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD
-       auf 100 gesetzt, sind also nicht fortfuehrbar
-     - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem
-       Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset
-       gegebenenfalls an ihren Ausgangsort zurueckkehren. 
-     - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden-
-       magiern erfragen
-
-BEISPIELE:
-     // ein Test
-     if(random(100)<=liv->QueryProp(P_GUARD))
-      cannotMoveNPC(); // NPC darf nicht bewegt werden!
-     else
-      moveNPC();       // NPC darf bewegt werden
-
-     // ein wegfuehrbarer NPC
-     void create() {
-      ::create();
-      ...
-      SetProp(P_GUARD,50);
-      ...
-     }
-     // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun
-     // fortfuehren
+*******
 
 
-SIEHE AUCH:
-     AddItem()
+NAME
+====
+
+   P_GUARD                            "guard"
+
+
+DEFINIERT IN
+============
+
+   /sys/guard.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf
+   oder nicht. Abgefragt werden muss dies von den Items oder Spells, die
+   den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch
+   darauf geachtet!
+
+   Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger)
+   Zahlenwert zwischen 0 und 100, der hierbei den Grad der
+   'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen
+   immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen
+   gibt es die Wahrscheinlichkeit dafuer an.
+
+
+BEMERKUNGEN
+===========
+
+   - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD
+     auf 100 gesetzt, sind also nicht fortfuehrbar
+   - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem
+     Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset
+     gegebenenfalls an ihren Ausgangsort zurueckkehren.
+   - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden-
+     magiern erfragen
+
+
+BEISPIELE
+=========
+
+   // ein Test
+   if(random(100)<=liv->QueryProp(P_GUARD))
+    cannotMoveNPC(); // NPC darf nicht bewegt werden!
+   else
+    moveNPC();       // NPC darf bewegt werden
+
+   // ein wegfuehrbarer NPC
+   void create() {
+    ::create();
+    ...
+    SetProp(P_GUARD,50);
+    ...
+   }
+   // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun
+   // fortfuehren
+
+
+SIEHE AUCH
+==========
+
+   AddItem()
 
 13.April 2004 Gloinson
diff --git a/doc/props/P_GUILD b/doc/props/P_GUILD
index bcffb4c..c3c13cb 100644
--- a/doc/props/P_GUILD
+++ b/doc/props/P_GUILD
@@ -1,22 +1,40 @@
+
 P_GUILD
-NAME:
-     P_GUILD				"guild"                       
+*******
 
-DEFINIERT IN:
-     /sys/properties.h
 
-BESCHREIBUNG:
-     Diese Property enthaelt den Namen der Gilde, welcher das Lebewesen
-     angehoert. Der Name der Gilde ist hierbei kleingeschrieben als String
-     definiert.
+NAME
+====
 
-BEMERKUNGEN:
-     Bei Spielern ist der Wert dieser Property niemals Null, denn sie
-     gehoeren standardmaessig der in P_DEFAULT_GUILD stehenden Gilde an.
-     Ueber die gesetzte P_GUILD werden auch aktive Skills ermittelt.
+   P_GUILD                            "guild"
 
-SIEHE AUCH:
-     P_DEFAULT_GUILD, P_VISIBLE_GUILD
-     P_GUILD_TITLE, P_SUBGUILD_TITLE
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt den Namen der Gilde, welcher das Lebewesen
+   angehoert. Der Name der Gilde ist hierbei kleingeschrieben als String
+   definiert.
+
+
+BEMERKUNGEN
+===========
+
+   Bei Spielern ist der Wert dieser Property niemals Null, denn sie
+   gehoeren standardmaessig der in P_DEFAULT_GUILD stehenden Gilde an.
+   Ueber die gesetzte P_GUILD werden auch aktive Skills ermittelt.
+
+
+SIEHE AUCH
+==========
+
+   P_DEFAULT_GUILD, P_VISIBLE_GUILD
+   P_GUILD_TITLE, P_SUBGUILD_TITLE
 
 26. Maerz 2004 Gloinson
diff --git a/doc/props/P_GUILD_DEACTIVATE_SKILLS b/doc/props/P_GUILD_DEACTIVATE_SKILLS
index 019da30..a53d6ce 100644
--- a/doc/props/P_GUILD_DEACTIVATE_SKILLS
+++ b/doc/props/P_GUILD_DEACTIVATE_SKILLS
@@ -1,38 +1,50 @@
-PROPERTY:
 
-  P_GUILD_DEACTIVATE_SKILLS     "guild_deactivate_skills"
+P_GUILD_DEACTIVATE_SKILLS
+*************************
 
-DEFINIERT IN: 
 
-  new_skills.h
+PROPERTY
+========
 
-BESCHREIBUNG:
+   P_GUILD_DEACTIVATE_SKILLS     "guild_deactivate_skills"
 
-  Diese Property erlaubt es, Gildenmitgliedern die benutzung von ANY-
-  Skills zu untersagen. Dies sind einerseits die allgemeinen Waffenskills,
-  andererseits koennte das auch der entgifte-Spruch der Duesterwald -
-  Quest sein.
+DEFINIERT IN:
 
-  Wert dieser Property ist ein Mapping, das als Keys die einzelnen
-  Skills und als Wert 1 enthaelt, wenn ein Skill deaktiviert
-  werden soll und 0, falls nicht.
+   new_skills.h
 
-  Diese Property wird nur bei einem Neuerzeugen des Spielers neu 
-  ausgelesen, da es sonst zuviel Rechenzeit kostet.
 
-BEISPIEL:
+BESCHREIBUNG
+============
 
-  Jede Gilde, die keine Waffenskills benutzen soll (oder selbst welche hat)
-  enthaelt folgenden Befehl:
+   Diese Property erlaubt es, Gildenmitgliedern die benutzung von ANY-
+   Skills zu untersagen. Dies sind einerseits die allgemeinen Waffenskills,
+   andererseits koennte das auch der entgifte-Spruch der Duesterwald -
+   Quest sein.
 
-    SetProp(P_GUILD_DEACTIVATE_SKILLS,
-    ([FIGHT(WT_SWORD):1,
-    FIGHT(WT_AXE):1,
-    FIGHT(WT_CLUB):1,
-    FIGHT(WT_SPEAR):1,
-    FIGHT(WT_KNIFE):1,
-    FIGHT(WT_WHIP):1]));
-    
-LETZTE AENDERUNG: 
+   Wert dieser Property ist ein Mapping, das als Keys die einzelnen
+   Skills und als Wert 1 enthaelt, wenn ein Skill deaktiviert
+   werden soll und 0, falls nicht.
 
-2003-01-30, 14:15, Humni
+   Diese Property wird nur bei einem Neuerzeugen des Spielers neu
+   ausgelesen, da es sonst zuviel Rechenzeit kostet.
+
+
+BEISPIEL
+========
+
+   Jede Gilde, die keine Waffenskills benutzen soll (oder selbst welche hat)
+   enthaelt folgenden Befehl:
+
+     SetProp(P_GUILD_DEACTIVATE_SKILLS,
+     ([FIGHT(WT_SWORD):1,
+     FIGHT(WT_AXE):1,
+     FIGHT(WT_CLUB):1,
+     FIGHT(WT_SPEAR):1,
+     FIGHT(WT_KNIFE):1,
+     FIGHT(WT_WHIP):1]));
+
+LETZTE AENDERUNG
+
+
+2003-01-30, 1415, Humni
+=======================
diff --git a/doc/props/P_GUILD_DEFAULT_SPELLBOOK b/doc/props/P_GUILD_DEFAULT_SPELLBOOK
index 9ad9150..4d6bbd0 100644
--- a/doc/props/P_GUILD_DEFAULT_SPELLBOOK
+++ b/doc/props/P_GUILD_DEFAULT_SPELLBOOK
@@ -1,23 +1,44 @@
-NAME:
-	P_GUILD_DEFAULT_SPELLBOOK	"guild_sb"                    
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_GUILD_DEFAULT_SPELLBOOK
+*************************
 
-BESCHREIBUNG:
-	Diese Gildenproperty enthaelt den Namen des Spellbooks, welches
-	standardmaessig von der Gilde verwendet wird.
 
-BEMERKUNGEN:
-	Bei Spells kann sie mit SI_SPELLBOOK ueberschrieben werden.
+NAME
+====
 
-BEISPIELE:
-	Bei Zauberern waere folgendes denkbar:
-	  SetProp(P_GUILD_DEFAULT_SPELLBOOK,"magie_sp");
-	Das Spellbook ist hierbei unter "/spellbooks/magie_sp.c" zu finden.
+   P_GUILD_DEFAULT_SPELLBOOK       "guild_sb"
 
-SIEHE AUCH:
-	P_GUILD
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Gildenproperty enthaelt den Namen des Spellbooks, welches
+   standardmaessig von der Gilde verwendet wird.
+
+
+BEMERKUNGEN
+===========
+
+   Bei Spells kann sie mit SI_SPELLBOOK ueberschrieben werden.
+
+
+BEISPIELE
+=========
+
+   Bei Zauberern waere folgendes denkbar:
+     SetProp(P_GUILD_DEFAULT_SPELLBOOK,"magie_sp");
+   Das Spellbook ist hierbei unter "/spellbooks/magie_sp.c" zu finden.
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_GUILD_FEMALE_TITLES b/doc/props/P_GUILD_FEMALE_TITLES
index b1528e9..c06947d 100644
--- a/doc/props/P_GUILD_FEMALE_TITLES
+++ b/doc/props/P_GUILD_FEMALE_TITLES
@@ -1,24 +1,42 @@
-NAME:
-	P_GUILD_FEMALE_TITLES		"guild_female_titles"         
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_GUILD_FEMALE_TITLES
+*********************
 
-BESCHREIBUNG:
-	Diese Gildenproperty enthaelt die Stufenbezeichnungen fuer
-	weibliche Gildenmitglieder. Als Schluessel dienen hierbei die
-	Gildenstufen und die entsprechenden Eintraege sind dann die zur
-	Stufe gehoerigen Gildentitel.
 
-BEISPIELE:
-	Eine Programmierergilde koennte folgende Stufenbezeichnungen
-	beinhalten:
-	  SetProp(P_GUILD_FEMALE_TITLES,([1:"die Anfaengerin",
-	                                  2:"die Fortgeschrittene",
-	                                  3:"die Professionelle ;)"]));
+NAME
+====
 
-SIEHE AUCH:
-	P_GENDER, P_GUILD_LEVEL, P_GUILD_TITLE, P_GUILD_MALE_TITLES
+   P_GUILD_FEMALE_TITLES           "guild_female_titles"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Gildenproperty enthaelt die Stufenbezeichnungen fuer
+   weibliche Gildenmitglieder. Als Schluessel dienen hierbei die
+   Gildenstufen und die entsprechenden Eintraege sind dann die zur
+   Stufe gehoerigen Gildentitel.
+
+
+BEISPIELE
+=========
+
+   Eine Programmierergilde koennte folgende Stufenbezeichnungen
+   beinhalten:
+     SetProp(P_GUILD_FEMALE_TITLES,([1:"die Anfaengerin",
+                                     2:"die Fortgeschrittene",
+                                     3:"die Professionelle ;)"]));
+
+
+SIEHE AUCH
+==========
+
+   P_GENDER, P_GUILD_LEVEL, P_GUILD_TITLE, P_GUILD_MALE_TITLES
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_GUILD_LEVEL b/doc/props/P_GUILD_LEVEL
index 4920449..f38701c 100644
--- a/doc/props/P_GUILD_LEVEL
+++ b/doc/props/P_GUILD_LEVEL
@@ -1,23 +1,41 @@
-NAME:
-	P_GUILD_LEVEL			"guild_level"                 
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_GUILD_LEVEL
+*************
 
-BESCHREIBUNG:
-	Diese Property enthaelt die Gildenstufe des Lebewesens, welche nicht
-	unbedingt seiner Spielerstufe entspricht.
 
-BEMERKUNGEN:
-	Bei manchen Gilden entspricht die Gildenstufe standardmaessig der
-	Spielerstufe (Abenteurer, Katzenkrieger). In der Property selbst
-	wird eigentlich ein Mapping eingetragen, welches die Gildennamen als
-	Schluessel und die dazugehoerige Gildenstufe als Eintrag enthaelt.
-	Bei der Abfrage der Property wird jedoch die Gilde beruecksichtigt
-	und die aktuelle Gildenstufe zurueckgeliefert.
+NAME
+====
 
-SIEHE AUCH:
-	P_GUILD, P_GUILD_TITLE, P_GUILD_MALE_TITLES, P_GUILD_FEMALE_TITLES
+   P_GUILD_LEVEL                   "guild_level"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt die Gildenstufe des Lebewesens, welche nicht
+   unbedingt seiner Spielerstufe entspricht.
+
+
+BEMERKUNGEN
+===========
+
+   Bei manchen Gilden entspricht die Gildenstufe standardmaessig der
+   Spielerstufe (Abenteurer, Katzenkrieger). In der Property selbst
+   wird eigentlich ein Mapping eingetragen, welches die Gildennamen als
+   Schluessel und die dazugehoerige Gildenstufe als Eintrag enthaelt.
+   Bei der Abfrage der Property wird jedoch die Gilde beruecksichtigt
+   und die aktuelle Gildenstufe zurueckgeliefert.
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD, P_GUILD_TITLE, P_GUILD_MALE_TITLES, P_GUILD_FEMALE_TITLES
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_GUILD_LEVELS b/doc/props/P_GUILD_LEVELS
index 80d2237..9b9b80d 100644
--- a/doc/props/P_GUILD_LEVELS
+++ b/doc/props/P_GUILD_LEVELS
@@ -1,35 +1,56 @@
-NAME:
-	P_GUILD_LEVELS			"guild_levels"                
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_GUILD_LEVELS
+**************
 
-BESCHREIBUNG:
-	Diese Gildenproperty enthaelt ein Mapping mit den
-	Stufenbeschraenkungen fuer die jeweiligen Gildenstufen. Als
-	Schluessel dient der jeweilige Gildenlevel und die entsprechenden
-	Eintraege sind wiederum Mappings, in welchen die Beschraenkungen
-	angegeben sind.
 
-BEMERKUNGEN:
-	Die Beschraenkungen fuer Level 1 sollten auch fuer die
-	Eintrittsbeschraenkungen der Gilde gelten. Letztere kann man in der
-	Property P_GUILD_RESTRICTIONS angeben.
+NAME
+====
 
-BEISPIELE:
-	Das folgende Beispiel zeigt ein paar moegliche Abfragen:
-	  string check(object pl);
-	  SetProp(P_GUILD_LEVELS,([1:([P_LEVEL:3,P_QP:100,SR_FUN:#'check]),
-	                           2:([A_INT:10,P_LEVEL:25]),
-	                           3:([A_INT:20,P_LEVEL:50])]));
-	  string check(object pl)
-	  { if(pl->QueryProp(P_MALE))
-	      return 0;
-	    return "Fuer Frauen ist das nichts!\n";
-	  }
+   P_GUILD_LEVELS                  "guild_levels"
 
-SIEHE AUCH:
-	P_GUILD_LEVEL, P_GUILD_RESTRICTIONS, /std/restriction_checker.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Gildenproperty enthaelt ein Mapping mit den
+   Stufenbeschraenkungen fuer die jeweiligen Gildenstufen. Als
+   Schluessel dient der jeweilige Gildenlevel und die entsprechenden
+   Eintraege sind wiederum Mappings, in welchen die Beschraenkungen
+   angegeben sind.
+
+
+BEMERKUNGEN
+===========
+
+   Die Beschraenkungen fuer Level 1 sollten auch fuer die
+   Eintrittsbeschraenkungen der Gilde gelten. Letztere kann man in der
+   Property P_GUILD_RESTRICTIONS angeben.
+
+
+BEISPIELE
+=========
+
+   Das folgende Beispiel zeigt ein paar moegliche Abfragen:
+     string check(object pl);
+     SetProp(P_GUILD_LEVELS,([1:([P_LEVEL:3,P_QP:100,SR_FUN:#'check]),
+                              2:([A_INT:10,P_LEVEL:25]),
+                              3:([A_INT:20,P_LEVEL:50])]));
+     string check(object pl)
+     { if(pl->QueryProp(P_MALE))
+         return 0;
+       return "Fuer Frauen ist das nichts!\n";
+     }
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD_LEVEL, P_GUILD_RESTRICTIONS, /std/restriction_checker.c
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_GUILD_MALE_TITLES b/doc/props/P_GUILD_MALE_TITLES
index 27e05a5..41cb773 100644
--- a/doc/props/P_GUILD_MALE_TITLES
+++ b/doc/props/P_GUILD_MALE_TITLES
@@ -1,24 +1,42 @@
-NAME:
-	P_GUILD_MALE_TITLES		"guild_male_titles"           
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_GUILD_MALE_TITLES
+*******************
 
-BESCHREIBUNG:
-	Diese Gildenproperty enthaelt die Stufenbezeichnungen fuer
-	maennliche Gildenmitglieder. Als Schluessel dienen hierbei die
-	Gildenstufen und die entsprechenden Eintraege sind dann die zur
-	Stufe gehoerigen Gildentitel.
 
-BEISPIELE:
-	Eine Programmierergilde koennte folgende Stufenbezeichnungen
-	beinhalten:
-	  SetProp(P_GUILD_MALE_TITLES,([1:"der Anfaenger",
-	                                2:"der Fortgeschrittene",
-	                                3:"der Profi"]));
+NAME
+====
 
-SIEHE AUCH:
-	P_GENDER, P_GILD_LEVEL, P_GUILD_TITLE, P_GUILD_FEMALE_TITLES
+   P_GUILD_MALE_TITLES             "guild_male_titles"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Gildenproperty enthaelt die Stufenbezeichnungen fuer
+   maennliche Gildenmitglieder. Als Schluessel dienen hierbei die
+   Gildenstufen und die entsprechenden Eintraege sind dann die zur
+   Stufe gehoerigen Gildentitel.
+
+
+BEISPIELE
+=========
+
+   Eine Programmierergilde koennte folgende Stufenbezeichnungen
+   beinhalten:
+     SetProp(P_GUILD_MALE_TITLES,([1:"der Anfaenger",
+                                   2:"der Fortgeschrittene",
+                                   3:"der Profi"]));
+
+
+SIEHE AUCH
+==========
+
+   P_GENDER, P_GILD_LEVEL, P_GUILD_TITLE, P_GUILD_FEMALE_TITLES
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_GUILD_PREPAREBLOCK b/doc/props/P_GUILD_PREPAREBLOCK
index e429a49..ee1c361 100644
--- a/doc/props/P_GUILD_PREPAREBLOCK
+++ b/doc/props/P_GUILD_PREPAREBLOCK
@@ -1,37 +1,60 @@
+
+P_GUILD_PREPAREBLOCK
+********************
+
+
 P_GUILD_PREPAREBLOCK (int)
+==========================
 
-NAME:
-  P_GUILD_PREPAREBLOCK                           "guild_prepareblock" 
 
-DEFINIERT IN:
-  /sys/new_skills.h
+NAME
+====
 
-BESCHREIBUNG:
-  Diese Property enthaelt die Information, ob das Lebewesen in
-  der Konzentrationsphase eines Spells weiterkaempft oder ob
-  die Angriffe derweil ausgesetzt werden.
+   P_GUILD_PREPAREBLOCK                           "guild_prepareblock"
 
-BEMERKUNGEN:
-  In der Property selbst wird eigentlich ein Mapping eingetragen,
-  welches die Gildennamen als Schluessel und das dazugehoerige
-  Block-Flag als Eintrag enthaelt. Bei der Abfrage der Property wird
-  jedoch die Gilde beruecksichtigt und das aktuelle Flag
-  zurueckgeliefert.
-  Dementsprechend das diese Prop nicht mit Set() manipuliert werden, 
-  bitte ausschliessliche SetProp() verwenden.
 
-BEISPIELE:
-  Die Property sollte natuerlich nur von der Gilde gesetzt werden
-  und auch nur bei Gildenmitgliedern
+DEFINIERT IN
+============
 
-  if ( IsGuildMember(pl) )
-    pl->SetProp(P_GUILD_PREPAREBLOCK,1);
+   /sys/new_skills.h
 
-  Resultat: Kein Ausfuehren von Attack(), wenn pl sich auf einen
-  Zauberspruch konzentriert.
 
-SIEHE AUCH:
-  P_PREPARED_SPELL
+BESCHREIBUNG
+============
 
-----------------------------------------------------------------------------
+   Diese Property enthaelt die Information, ob das Lebewesen in
+   der Konzentrationsphase eines Spells weiterkaempft oder ob
+   die Angriffe derweil ausgesetzt werden.
+
+
+BEMERKUNGEN
+===========
+
+   In der Property selbst wird eigentlich ein Mapping eingetragen,
+   welches die Gildennamen als Schluessel und das dazugehoerige
+   Block-Flag als Eintrag enthaelt. Bei der Abfrage der Property wird
+   jedoch die Gilde beruecksichtigt und das aktuelle Flag
+   zurueckgeliefert.
+   Dementsprechend das diese Prop nicht mit Set() manipuliert werden,
+   bitte ausschliessliche SetProp() verwenden.
+
+
+BEISPIELE
+=========
+
+   Die Property sollte natuerlich nur von der Gilde gesetzt werden
+   und auch nur bei Gildenmitgliedern
+
+   if ( IsGuildMember(pl) )
+     pl->SetProp(P_GUILD_PREPAREBLOCK,1);
+
+   Resultat: Kein Ausfuehren von Attack(), wenn pl sich auf einen
+   Zauberspruch konzentriert.
+
+
+SIEHE AUCH
+==========
+
+   P_PREPARED_SPELL
+
 18.03.2008, Zesstra
diff --git a/doc/props/P_GUILD_RATING b/doc/props/P_GUILD_RATING
index df5800a..af9c24e 100644
--- a/doc/props/P_GUILD_RATING
+++ b/doc/props/P_GUILD_RATING
@@ -1,22 +1,40 @@
-NAME:
-	P_GUILD_RATING			"guild_rating"                
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_GUILD_RATING
+**************
 
-BESCHREIBUNG:
-	In dieser Property wird die Einstufung des Spielers innerhalb
-	seiner Gilde festgelegt. Der dafuer zu ermittelnde Wert muss in
-	einem Bereich von 0 bis 10000 liegen. Wie sich die Einstufung
-	zusammensetzt, bleibt der jeweiligen Gilde ueberlassen.
 
-BEMERKUNGEN:
-	Der Wert muss von der Gilde ermittelt werden! Meist setzt er sich
-	aus den Faehigkeiten des Mitglieds zusammen und mitunter fliessen
-	auch Gildenquests oder aehnliches mit ein.
+NAME
+====
 
-SIEHE AUCH:
-    P_NEWSKILLS, GuildRating
+   P_GUILD_RATING                  "guild_rating"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property wird die Einstufung des Spielers innerhalb
+   seiner Gilde festgelegt. Der dafuer zu ermittelnde Wert muss in
+   einem Bereich von 0 bis 10000 liegen. Wie sich die Einstufung
+   zusammensetzt, bleibt der jeweiligen Gilde ueberlassen.
+
+
+BEMERKUNGEN
+===========
+
+   Der Wert muss von der Gilde ermittelt werden! Meist setzt er sich
+   aus den Faehigkeiten des Mitglieds zusammen und mitunter fliessen
+   auch Gildenquests oder aehnliches mit ein.
+
+
+SIEHE AUCH
+==========
+
+   P_NEWSKILLS, GuildRating
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_GUILD_RESTRICTIONS b/doc/props/P_GUILD_RESTRICTIONS
index 8bbabc1..c94ccf3 100644
--- a/doc/props/P_GUILD_RESTRICTIONS
+++ b/doc/props/P_GUILD_RESTRICTIONS
@@ -1,37 +1,59 @@
-NAME:
-    P_GUILD_RESTRICTIONS        "guild_rest"                  
 
-DEFINIERT IN:
-    /sys/new_skills.h
+P_GUILD_RESTRICTIONS
+********************
 
-BESCHREIBUNG:
-    Diese Gildenproperty enthaelt ein Mapping mit den
-    Eintrittsbeschraenkungen fuer die jeweilige Gilde.
 
-BEMERKUNGEN:
-    Im allgemeinen sollte das Mapping mit den Eintrittsbeschraenkungen
-    mit den Beschraenkungen fuer Level 1 im Mapping von P_GUILD_LEVELS
-    uebereinstimmen.
+NAME
+====
 
-BEISPIELE:
-    Ein paar moegliche Abfragen waeren folgende:
-    string check(object pl);
+   P_GUILD_RESTRICTIONS        "guild_rest"
 
-    SetProp(P_GUILD_RESTRICTIONS,
-            ([P_LEVEL:3,
-              P_QP:100,
-              SR_FUN:#'check]));
 
-    string check(object pl) {
-      if(pl->QueryProp(P_MALE))
-        return 0;
-      return "Fuer Frauen ist das nichts!\n";
-    }
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-    Gildenfkt.:
-    * Ein/Austritt: beitreten, bei_oder_aus_treten, austreten
-    * Sonstiges:    P_GUILD_LEVELS
-    Sonstiges:      /std/restriction_checker.c
+   /sys/new_skills.h
 
-3. Okt 2011 Gloinson
\ No newline at end of file
+
+BESCHREIBUNG
+============
+
+   Diese Gildenproperty enthaelt ein Mapping mit den
+   Eintrittsbeschraenkungen fuer die jeweilige Gilde.
+
+
+BEMERKUNGEN
+===========
+
+   Im allgemeinen sollte das Mapping mit den Eintrittsbeschraenkungen
+   mit den Beschraenkungen fuer Level 1 im Mapping von P_GUILD_LEVELS
+   uebereinstimmen.
+
+
+BEISPIELE
+=========
+
+   Ein paar moegliche Abfragen waeren folgende:
+   string check(object pl);
+
+   SetProp(P_GUILD_RESTRICTIONS,
+           ([P_LEVEL:3,
+             P_QP:100,
+             SR_FUN:#'check]));
+
+   string check(object pl) {
+     if(pl->QueryProp(P_MALE))
+       return 0;
+     return "Fuer Frauen ist das nichts!\n";
+   }
+
+
+SIEHE AUCH
+==========
+
+   Gildenfkt.:
+   * Ein/Austritt: beitreten, bei_oder_aus_treten, austreten
+   * Sonstiges:    P_GUILD_LEVELS
+   Sonstiges:      /std/restriction_checker.c
+
+3. Okt 2011 Gloinson
diff --git a/doc/props/P_GUILD_SKILLS b/doc/props/P_GUILD_SKILLS
index d7e30a2..232a5cf 100644
--- a/doc/props/P_GUILD_SKILLS
+++ b/doc/props/P_GUILD_SKILLS
@@ -1,24 +1,42 @@
+
 P_GUILD_SKILLS
-NAME:
-    P_GUILD_SKILLS            "guild_skills"                
+**************
 
-DEFINIERT IN:
-    /sys/new_skills.h
 
-BESCHREIBUNG:
-    Diese Gildenproperty enthaelt ein Mapping mit allen Skills und
-    Spells der Gilde.
+NAME
+====
 
-BEMERKUNGEN:
-    Man sollte diese Property sollte nicht per Hand veraendern, sondern
-    die Funktionen AddSkill() bzw. AddSpell() nutzen.
+   P_GUILD_SKILLS            "guild_skills"
 
-SIEHE AUCH:
-    GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
-    * Sonstiges:      GuildRating
-    Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
-    * Verwalten:      AddSpell, QuerySpell
-    * Properties:     P_SB_SPELLS, P_GLOBAL_SKILLPROPS, P_GUILD_RATING
-    Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
 
-3. Okt 2011 Gloinson
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Gildenproperty enthaelt ein Mapping mit allen Skills und
+   Spells der Gilde.
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte diese Property sollte nicht per Hand veraendern, sondern
+   die Funktionen AddSkill() bzw. AddSpell() nutzen.
+
+
+SIEHE AUCH
+==========
+
+   GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
+   * Sonstiges:      GuildRating
+   Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
+   * Verwalten:      AddSpell, QuerySpell
+   * Properties:     P_SB_SPELLS, P_GLOBAL_SKILLPROPS, P_GUILD_RATING
+   Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+
+3. Okt 2011 Gloinson
diff --git a/doc/props/P_GUILD_TITLE b/doc/props/P_GUILD_TITLE
index 4554349..d3a49b3 100644
--- a/doc/props/P_GUILD_TITLE
+++ b/doc/props/P_GUILD_TITLE
@@ -1,37 +1,58 @@
+
 P_GUILD_TITLE
-NAME:
-     P_GUILD_TITLE			"guild_title"                 
+*************
 
-DEFINIERT IN:
-     /sys/new_skills.h
 
-BESCHREIBUNG:
-     Diese Property enthaelt den Gildentitel des Lebewesens, welcher der
-     Gildenstufe des Lebewesens entspricht und jedoch nur angezeigt wird,
-     wenn P_TITLE des Lebewesens gleich Null ist.
+NAME
+====
 
-BEMERKUNGEN:
-     In der Property selbst wird eigentlich ein Mapping eingetragen, welches
-     die Gildennamen als Schluessel und die dazugehoerigen Gildentitel als
-     Eintrag enthaelt. Bei der Abfrage der Property wird jedoch die Gilde
-     beruecksichtigt und der aktuelle Gildentitel zurueckgeliefert.
+   P_GUILD_TITLE                      "guild_title"
 
-BEISPIELE:
-	Fuer eine Programmierergilde waere folgendes denkbar:
-	  SetProp(P_GUILD_MALE_TITLES,([1:"der Anfaenger",
-	                                2:"der Fortgeschrittene",
-	                                3:"der Profi"]));
-	  SetProp(P_GUILD_FEMALE_TITLES,([1:"die Anfaengerin",
-	                                  2:"die Fortgeschrittene",
-	                                  3:"die Professionelle"]));
-	Ein weibliches Gildenmitglied mit der dritten Gildenstufe und ohne
-	P_TITLE wuerde dann den Titel "die Professionelle" tragen. Das hat
-	zwar nichts mit Programmierern zu tun, aber wie heisst eigentlich
-	ein weiblicher "Profi"?! :)
 
-SIEHE AUCH:
-     P_TITLE, P_GUILD, P_GUILD_LEVEL,
-     P_GUILD_MALE_TITLES, P_GUILD_FEMALE_TITLES,
-     P_SUBGUILD_TITLE
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt den Gildentitel des Lebewesens, welcher der
+   Gildenstufe des Lebewesens entspricht und jedoch nur angezeigt wird,
+   wenn P_TITLE des Lebewesens gleich Null ist.
+
+
+BEMERKUNGEN
+===========
+
+   In der Property selbst wird eigentlich ein Mapping eingetragen, welches
+   die Gildennamen als Schluessel und die dazugehoerigen Gildentitel als
+   Eintrag enthaelt. Bei der Abfrage der Property wird jedoch die Gilde
+   beruecksichtigt und der aktuelle Gildentitel zurueckgeliefert.
+
+
+BEISPIELE
+=========
+
+   Fuer eine Programmierergilde waere folgendes denkbar:
+     SetProp(P_GUILD_MALE_TITLES,([1:"der Anfaenger",
+                                   2:"der Fortgeschrittene",
+                                   3:"der Profi"]));
+     SetProp(P_GUILD_FEMALE_TITLES,([1:"die Anfaengerin",
+                                     2:"die Fortgeschrittene",
+                                     3:"die Professionelle"]));
+   Ein weibliches Gildenmitglied mit der dritten Gildenstufe und ohne
+   P_TITLE wuerde dann den Titel "die Professionelle" tragen. Das hat
+   zwar nichts mit Programmierern zu tun, aber wie heisst eigentlich
+   ein weiblicher "Profi"?! :)
+
+
+SIEHE AUCH
+==========
+
+   P_TITLE, P_GUILD, P_GUILD_LEVEL,
+   P_GUILD_MALE_TITLES, P_GUILD_FEMALE_TITLES,
+   P_SUBGUILD_TITLE
 
 26. Maerz 2004 Gloinson
diff --git a/doc/props/P_HANDS b/doc/props/P_HANDS
index 9eda7c5..859b4eb 100644
--- a/doc/props/P_HANDS
+++ b/doc/props/P_HANDS
@@ -1,57 +1,78 @@
+
 P_HANDS
-NAME:
-     P_HANDS                    "hands"
+*******
 
-DEFINIERT IN:
-     /sys/living/combat.h
 
-BESCHREIBUNG:
-     Diese Property enthaelt ein dreielementiges Array mit
-     den folgenden Eintraegen:
-     1. Element: String mit der Meldung, wenn ohne Waffen angegriffen
-                 wird.
-     2. Element: Waffenklasse, wenn ohne Waffen angegriffen wird.
-     3. Element: Array mit Schadensarten (frueher auch: Schadensart)
+NAME
+====
 
-     eim Setzen dieser Property wird auch P_TOTAL_WC mit veraendert,
-     wenn das Lebewesen keine Waffe gezueckt hat. Steckt das Lebewesen
-     eine gezueckte Waffe weg, so wird ebenfalls P_TOTAL_WC mit der
-     Waffenklasse aus P_HANDS aktualisiert. Zueckt das Lebewesen eine
-     Waffe, so wird P_TOTAL_WC mit der Waffenklasse der Waffe (P_WC)
-     ueberschrieben. Die Property P_TOTAL_WC enthaelt somit immer die
-     aktuelle Angriffsstaerke des Lebewesen.
+   P_HANDS                    "hands"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt ein dreielementiges Array mit
+   den folgenden Eintraegen:
+   1. Element: String mit der Meldung, wenn ohne Waffen angegriffen
+               wird.
+   2. Element: Waffenklasse, wenn ohne Waffen angegriffen wird.
+   3. Element: Array mit Schadensarten (frueher auch: Schadensart)
+
+   eim Setzen dieser Property wird auch P_TOTAL_WC mit veraendert,
+   wenn das Lebewesen keine Waffe gezueckt hat. Steckt das Lebewesen
+   eine gezueckte Waffe weg, so wird ebenfalls P_TOTAL_WC mit der
+   Waffenklasse aus P_HANDS aktualisiert. Zueckt das Lebewesen eine
+   Waffe, so wird P_TOTAL_WC mit der Waffenklasse der Waffe (P_WC)
+   ueberschrieben. Die Property P_TOTAL_WC enthaelt somit immer die
+   aktuelle Angriffsstaerke des Lebewesen.
+
 
 BEMERKUNGEN
-     In alten Objekten kann es vorkommen, dass das dritte Element (Angabe des
-     Schadenstyps) fehlt. Dies ist eine Altlast, die Angabe des Schadenstypes
-     ist NICHT optional.)
+===========
 
-BEISPIEL:
-     Ein starker Tausendfuessler mit Schlagschaden:
-
-       SetProp(P_HANDS,({" mit tausend kleinen Fuesschen",1000, 
-                         ({DT_BLUDGEON}) }));
+   In alten Objekten kann es vorkommen, dass das dritte Element (Angabe des
+   Schadenstyps) fehlt. Dies ist eine Altlast, die Angabe des Schadenstypes
+   ist NICHT optional.)
 
 
-     Ein Saeurededaemon:
-       SetProp(P_HANDS,
-         ({
-           " mit saeuretriefenden Klauen",
-           250,
-           ({DT_RIP, DT_ACID})
-         })
-       );
+BEISPIEL
+========
 
-     Hier wurden gleich zwei Schadensarten angegeben, also wird
-     Mischschaden verursacht. Man sollte es jedoch nicht zu sehr
-     uebertreiben! Mehr als zwei oder drei gleichzeitig verwendete
-     Schadensarten lassen sich kaum mehr begruenden.
+   Ein starker Tausendfuessler mit Schlagschaden:
 
-SIEHE AUCH:
-     P_HANDS_USED_BY
-     P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
-     UseHands, FreeHands
-     P_TOTAL_WC, P_WC
-     /std/living/combat.c, /std/weapon/combat.c, /sys/combat.h
+     SetProp(P_HANDS,({" mit tausend kleinen Fuesschen",1000,
+                       ({DT_BLUDGEON}) }));
+
+
+   Ein Saeurededaemon:
+     SetProp(P_HANDS,
+       ({
+         " mit saeuretriefenden Klauen",
+         250,
+         ({DT_RIP, DT_ACID})
+       })
+     );
+
+   Hier wurden gleich zwei Schadensarten angegeben, also wird
+   Mischschaden verursacht. Man sollte es jedoch nicht zu sehr
+   uebertreiben! Mehr als zwei oder drei gleichzeitig verwendete
+   Schadensarten lassen sich kaum mehr begruenden.
+
+
+SIEHE AUCH
+==========
+
+   P_HANDS_USED_BY
+   P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
+   UseHands, FreeHands
+   P_TOTAL_WC, P_WC
+   /std/living/combat.c, /std/weapon/combat.c, /sys/combat.h
 
 22.02.2014 Zesstra
diff --git a/doc/props/P_HANDS_USED_BY b/doc/props/P_HANDS_USED_BY
index dd0e5fe..f0d5165 100644
--- a/doc/props/P_HANDS_USED_BY
+++ b/doc/props/P_HANDS_USED_BY
@@ -1,21 +1,39 @@
+
 P_HANDS_USED_BY
-NAME:
-     P_HANDS_USED_BY           "hands_used_by"
+***************
 
-DEFINIERT IN:
-     /sys/living/combat.h
 
-BESCHREIBUNG:
-     Enthaelt eine Liste mit den Objekten, die derzeit die Haende
-     des Livings belegen. Dabei koennen Objekte mehrmals auftauchen,
-     je nachdem wie viele Haende sie belegen.
+NAME
+====
 
-BEMERKUNGEN:
-     Darf nur ueber UseHands() und FreeHands() manipuliert werden.
+   P_HANDS_USED_BY           "hands_used_by"
 
-SIEHE AUCH:
-     P_HANDS
-     P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
-     UseHands, FreeHands
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt eine Liste mit den Objekten, die derzeit die Haende
+   des Livings belegen. Dabei koennen Objekte mehrmals auftauchen,
+   je nachdem wie viele Haende sie belegen.
+
+
+BEMERKUNGEN
+===========
+
+   Darf nur ueber UseHands() und FreeHands() manipuliert werden.
+
+
+SIEHE AUCH
+==========
+
+   P_HANDS
+   P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
+   UseHands, FreeHands
 
 1.Feb.2004 Gloinson
diff --git a/doc/props/P_HARBOUR b/doc/props/P_HARBOUR
index c0e1048..f049847 100644
--- a/doc/props/P_HARBOUR
+++ b/doc/props/P_HARBOUR
@@ -1,66 +1,94 @@
-NAME:
-    P_HARBOUR                                  "harbour_name"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_HARBOUR
+*********
 
-BESCHREIBUNG:
-    Array mit eindeutiger Bezeichnung des 'Hafens'
 
-BEMERKUNGEN:
-    Diese Property wird in Raeumen gesetzt, die als Anleger fuer Transporter
-    dienen sollen. Sie enthaelt ein Array aus zwei Elementen, einem String
-    und einem String-Array, zum Beispiel:
+NAME
+====
 
-    ({ "zur Sonneninsel", ({"sonneninsel"}) }) oder 
-    ({ "nach Titiwu", ({"titiwu"}) })
+   P_HARBOUR                                  "harbour_name"
 
-    Damit bekommt der Spieler bei einer Abfrage seiner Reiseroute mittels
-    "reise route" eine Ausgabe wie 
-      'Du reist mit dem Floss nach Titiwu' oder
-      'Du reist mit dem Wal zur Sonneninsel'.
 
-    Das zweite Element der Property enthaelt eine Liste der IDs, mit denen
-    sich der Hafen mit dem Befehl "reise nach <ID>" ansprechen laesst. Im
-    Beispiel oben wuerde also "reise nach sonneninsel" und 
-    "reise nach titiwu" akzeptiert werden. Der erste Eintrag in dieser ID-
-    Liste wird in der Ausgabe des Befehls "reise route" verwendet, sollte
-    also den Anlegeort korrekt bezeichnen und nicht z.B. eine Abkuerzung
-    enthalten.
-    Es bietet sich an, bei bestimmten, deklinierbaren Bezeichnungen alle
-    Varianten einzutragen, z.B. "verlorenes land" und zusaetzlich
-    "verlorene land" und "verlorenen land", damit alle Varianten von 
-    "reise nach ..." funktionieren.
+DEFINIERT IN
+============
 
-    Ist in einem Hafen diese Property nicht gesetzt, so bekommt der 
-    Spieler keinerlei Hinweis darauf, wohin ihn ein bestimmter Trans-
-    porter befoerdert. 
-    Stattdessen erhaelt er die Bezeichnung 'unbekannt'.
+   /sys/transport.h
 
-HINWEISE:
-    Wird der zweite Parameter in dieser Property, d.h. die Liste der 
-    Anleger-IDs, nicht korrekt gesetzt, kann das dazu fuehren, dass Spieler
-    den hier anlegenden Transporter nicht benutzen koennen, weil es
-    keine sinnvolle Syntax gibt, um den gewuenschten Zielhafen zu finden.
 
-    Zu achten ist auch darauf, das der erste Eintrag unveraendert in einer 
-    Meldung an den Spieler ausgegeben wird, d.h. Gross-und Kleinschreibung
-    sollte korrekt sein.
+BESCHREIBUNG
+============
 
-HISTORIE:
-    Frueher war der zweite Eintrag in dieser Property ein einzelner String.
-    Es existiert eine SetMethode auf dieser Property, die solche Daten in
-    altem Code auf die neue Datenstruktur umbiegt. Dies fuehrt dazu, dass
-    bei solchen Objekten die im geladenen Raum enthaltenen Daten nicht mit
-    den Daten im File uebereinstimmen. Dies moege aber bitte niemand 
-    zum Anlass nehmen, in neuem Code veraltete Daten in die Property zu 
-    schreiben!
-    
-SIEHE AUCH:
-  Properties:     P_NO_TRAVELING, P_TRAVEL_INFO
-  Funktionen:     AddRoute(L)
-  Spielerbefehle: reise
-  weitere Doku:   /d/inseln/schiffe/HowTo
+   Array mit eindeutiger Bezeichnung des 'Hafens'
 
-LETZTE AENDERUNG:
+
+BEMERKUNGEN
+===========
+
+   Diese Property wird in Raeumen gesetzt, die als Anleger fuer Transporter
+   dienen sollen. Sie enthaelt ein Array aus zwei Elementen, einem String
+   und einem String-Array, zum Beispiel:
+
+   ({ "zur Sonneninsel", ({"sonneninsel"}) }) oder
+   ({ "nach Titiwu", ({"titiwu"}) })
+
+   Damit bekommt der Spieler bei einer Abfrage seiner Reiseroute mittels
+   "reise route" eine Ausgabe wie
+     'Du reist mit dem Floss nach Titiwu' oder
+     'Du reist mit dem Wal zur Sonneninsel'.
+
+   Das zweite Element der Property enthaelt eine Liste der IDs, mit denen
+   sich der Hafen mit dem Befehl "reise nach <ID>" ansprechen laesst. Im
+   Beispiel oben wuerde also "reise nach sonneninsel" und
+   "reise nach titiwu" akzeptiert werden. Der erste Eintrag in dieser ID-
+   Liste wird in der Ausgabe des Befehls "reise route" verwendet, sollte
+   also den Anlegeort korrekt bezeichnen und nicht z.B. eine Abkuerzung
+   enthalten.
+   Es bietet sich an, bei bestimmten, deklinierbaren Bezeichnungen alle
+   Varianten einzutragen, z.B. "verlorenes land" und zusaetzlich
+   "verlorene land" und "verlorenen land", damit alle Varianten von
+   "reise nach ..." funktionieren.
+
+   Ist in einem Hafen diese Property nicht gesetzt, so bekommt der
+   Spieler keinerlei Hinweis darauf, wohin ihn ein bestimmter Trans-
+   porter befoerdert.
+   Stattdessen erhaelt er die Bezeichnung 'unbekannt'.
+
+
+HINWEISE
+========
+
+   Wird der zweite Parameter in dieser Property, d.h. die Liste der
+   Anleger-IDs, nicht korrekt gesetzt, kann das dazu fuehren, dass Spieler
+   den hier anlegenden Transporter nicht benutzen koennen, weil es
+   keine sinnvolle Syntax gibt, um den gewuenschten Zielhafen zu finden.
+
+   Zu achten ist auch darauf, das der erste Eintrag unveraendert in einer
+   Meldung an den Spieler ausgegeben wird, d.h. Gross-und Kleinschreibung
+   sollte korrekt sein.
+
+
+HISTORIE
+========
+
+   Frueher war der zweite Eintrag in dieser Property ein einzelner String.
+   Es existiert eine SetMethode auf dieser Property, die solche Daten in
+   altem Code auf die neue Datenstruktur umbiegt. Dies fuehrt dazu, dass
+   bei solchen Objekten die im geladenen Raum enthaltenen Daten nicht mit
+   den Daten im File uebereinstimmen. Dies moege aber bitte niemand
+   zum Anlass nehmen, in neuem Code veraltete Daten in die Property zu
+   schreiben!
+
+
+SIEHE AUCH
+==========
+
+   Properties:     P_NO_TRAVELING, P_TRAVEL_INFO
+   Funktionen:     AddRoute(L)
+   Spielerbefehle: reise
+   weitere Doku:   /d/inseln/schiffe/HowTo
+
+
+LETZTE AENDERUNG
+================
+
 2015-Jan-18, Arathorn
diff --git a/doc/props/P_HAUS_ERLAUBT b/doc/props/P_HAUS_ERLAUBT
index 8ac6495..ffd5c8f 100644
--- a/doc/props/P_HAUS_ERLAUBT
+++ b/doc/props/P_HAUS_ERLAUBT
@@ -1,29 +1,46 @@
-NAME:
-    P_HAUS_ERLAUBT                "haus_erlaubt"                
 
-DEFINIERT IN:
-    /sys/room/description.h
+P_HAUS_ERLAUBT
+**************
 
-BESCHREIBUNG:
-     Hier darf ein Seherhaus abgestellt werden
 
-BEMERKUNGEN:
-     Diese Property sollte nicht per default in Raeumen auf einen Wert > 0
-     gesetzt werden um einem Wildwuchs an Seherhaus(-ruinen) vorzubeugen.
-     Auch sei darauf geachtet, dass in Raeumen die P_INDOORS auf einen 
-     Wert > 0 haben, per default nicht gebaut werden kann.     
-     Hier lieber die Property per Hand auf 1 setzen und nach dem Aufstellen
-     des Hauses wieder loeschen.
-      
-     xcall $h->SetProp(P_HAUS_ERLAUBT,1);
+NAME
+====
 
-     Angemerkt sei noch, dass der Magier dem der Raum gehoert ueber Hausbau
-     entscheidet und nicht der Regionsmagier. In jedem Fall Ruecksprache 
-     halten falls der entsprechende Magier zumindest ab und an anwesend sein
-     sollte.
+   P_HAUS_ERLAUBT                "haus_erlaubt"
 
-     Unter /doc/beispiele/misc liegt ein File, in dem dokumentiert ist,
-     wie nach Aenderungen am Seherhaus zu verfahren ist.
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   Hier darf ein Seherhaus abgestellt werden
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property sollte nicht per default in Raeumen auf einen Wert > 0
+   gesetzt werden um einem Wildwuchs an Seherhaus(-ruinen) vorzubeugen.
+   Auch sei darauf geachtet, dass in Raeumen die P_INDOORS auf einen
+   Wert > 0 haben, per default nicht gebaut werden kann.
+   Hier lieber die Property per Hand auf 1 setzen und nach dem Aufstellen
+   des Hauses wieder loeschen.
+
+
+
+   xcall $h->SetProp(P_HAUS_ERLAUBT,1);
+
+   Angemerkt sei noch, dass der Magier dem der Raum gehoert ueber Hausbau
+   entscheidet und nicht der Regionsmagier. In jedem Fall Ruecksprache
+   halten falls der entsprechende Magier zumindest ab und an anwesend sein
+   sollte.
+
+   Unter /doc/beispiele/misc liegt ein File, in dem dokumentiert ist,
+   wie nach Aenderungen am Seherhaus zu verfahren ist.
+
 Last modified: Fri Nov 26 15:41:47 1999 by Tilly
diff --git a/doc/props/P_HB b/doc/props/P_HB
index eee2dcb..bdaf9f1 100644
--- a/doc/props/P_HB
+++ b/doc/props/P_HB
@@ -1,9 +1,22 @@
-NAME:
-    P_HB                          "hb"                          
 
-DEFINIERT IN:
-    /sys/properties.h
+P_HB
+****
 
-BESCHREIBUNG:
-     Diese Property wird gesetzt, wenn das Monster immer einen
-     heart_beat haben soll. (VORSICHT, nur wenn es WIRKLICH sein muss!)
+
+NAME
+====
+
+   P_HB                          "hb"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property wird gesetzt, wenn das Monster immer einen
+   heart_beat haben soll. (VORSICHT, nur wenn es WIRKLICH sein muss!)
diff --git a/doc/props/P_HEAL b/doc/props/P_HEAL
index 242802f..83d4991 100644
--- a/doc/props/P_HEAL
+++ b/doc/props/P_HEAL
@@ -1,32 +1,48 @@
-NAME:
-     P_HEAL                        "heal"                        
 
-DEFINIERT IN:
-     /sys/properties.h
+P_HEAL
+******
 
-BESCHREIBUNG:
-     Numerischer Wert, der beim Verzehr einer Leiche zu den Lebenspunkten 
-     desjenigen hinzugezaehlt wird, der die Leiche isst. Der Wert kann auch 
-     negativ sein. Falls die Leiche den maximalen Verfallszustand erreicht 
-     hat, wird dieser Wert automatisch auf -4 gesetzt, sofern nicht schon
-     ein geringerer Wert eingetragen ist.
 
-     Werte unter -4 sind sehr sparsam und nur in begruendeten Einzelfaellen
-     zu setzen. Die Regionsmagier werden auf sinnvolle Wertebereiche in
-     ihrem Zustaendigkeitsbereich achten und ggf. Grenzwerte fuer ihre 
-     Region festlegen.
+NAME
+====
 
-     Die Gilden koennen P_HEAL abfragen und eigene, grobe Informationstexte
-     ausgeben, die den Spieler ueber den zu erwartenden Effekt beim Essen
-     einer Leiche informieren.
+   P_HEAL                        "heal"
 
-     Positive Werte von P_HEAL sind bei der Heilungsbalance als Heilstelle
-     zu beantragen.
 
-     Fuer nicht allzu harte NPCs sollte P_HEAL auf 0 gesetzt sein. Dieser
-     Wert ist gleichzeitig der Standardwert.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     /std/corpse, QueryHealInfo()
-     
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert, der beim Verzehr einer Leiche zu den Lebenspunkten
+   desjenigen hinzugezaehlt wird, der die Leiche isst. Der Wert kann auch
+   negativ sein. Falls die Leiche den maximalen Verfallszustand erreicht
+   hat, wird dieser Wert automatisch auf -4 gesetzt, sofern nicht schon
+   ein geringerer Wert eingetragen ist.
+
+   Werte unter -4 sind sehr sparsam und nur in begruendeten Einzelfaellen
+   zu setzen. Die Regionsmagier werden auf sinnvolle Wertebereiche in
+   ihrem Zustaendigkeitsbereich achten und ggf. Grenzwerte fuer ihre
+   Region festlegen.
+
+   Die Gilden koennen P_HEAL abfragen und eigene, grobe Informationstexte
+   ausgeben, die den Spieler ueber den zu erwartenden Effekt beim Essen
+   einer Leiche informieren.
+
+   Positive Werte von P_HEAL sind bei der Heilungsbalance als Heilstelle
+   zu beantragen.
+
+   Fuer nicht allzu harte NPCs sollte P_HEAL auf 0 gesetzt sein. Dieser
+   Wert ist gleichzeitig der Standardwert.
+
+
+SIEHE AUCH
+==========
+
+   /std/corpse, QueryHealInfo()
+
 31.03.2008 Arathorn
diff --git a/doc/props/P_HELPER_NPC b/doc/props/P_HELPER_NPC
index eb71e47..af8bfef 100644
--- a/doc/props/P_HELPER_NPC
+++ b/doc/props/P_HELPER_NPC
@@ -1,30 +1,50 @@
+
 P_HELPER_NPC
+************
 
-NAME:
-     P_HELPER_NPC             "std:helper_npc
 
-DEFINIERT IN:
-     /sys/living/combat.h
+NAME
+====
 
-BESCHREIBUNG:
-    Mit dieser Prop laesst sich herausfinden, ob ein NPC einem Spieler hilft
-    bzw. welche NPC einem Spieler helfen.
-    Wird diese Prop in einem NPC abgefragt, enthaelt sie ein Array 
-      ({ spielerobjekt, flags }) oder 0.
-    Wird diese Prop in einem Spieler abgefragt, enthaelt sie ein Mapping
-      ([npcobjekt1: flags1, npc-objekt2: flags2]).
+   P_HELPER_NPC             "std:helper_npc
 
-    <flags> ist ein Integer, der eine Reihe von ver-oder-ten Konstanten (s.
-    RegisterHelperNPC) enthalten kann.
 
-BEMERKUNGEN:
-    Diese Prop wird automatisch von RegisterHelperNPC() und
-    UnregisterHelperNPC() verwaltet. Bitte aendert sie nicht per Hand.
+DEFINIERT IN
+============
 
-BEISPIEL:
-    s. RegisterHelperNPC().
+   /sys/living/combat.h
 
-SIEHE AUCH:
-     RegisterHelperNPC(), UnregisterHelperNPC()
+
+BESCHREIBUNG
+============
+
+   Mit dieser Prop laesst sich herausfinden, ob ein NPC einem Spieler hilft
+   bzw. welche NPC einem Spieler helfen.
+   Wird diese Prop in einem NPC abgefragt, enthaelt sie ein Array
+     ({ spielerobjekt, flags }) oder 0.
+   Wird diese Prop in einem Spieler abgefragt, enthaelt sie ein Mapping
+     ([npcobjekt1: flags1, npc-objekt2: flags2]).
+
+   <flags> ist ein Integer, der eine Reihe von ver-oder-ten Konstanten (s.
+   RegisterHelperNPC) enthalten kann.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Prop wird automatisch von RegisterHelperNPC() und
+   UnregisterHelperNPC() verwaltet. Bitte aendert sie nicht per Hand.
+
+
+BEISPIEL
+========
+
+   s. RegisterHelperNPC().
+
+
+SIEHE AUCH
+==========
+
+   RegisterHelperNPC(), UnregisterHelperNPC()
 
 10.03.2009, Zesstra
diff --git a/doc/props/P_HELPER_OBJECTS b/doc/props/P_HELPER_OBJECTS
index bdf031d..94990c4 100644
--- a/doc/props/P_HELPER_OBJECTS
+++ b/doc/props/P_HELPER_OBJECTS
@@ -1,25 +1,40 @@
+
 P_HELPER_OBJECTS
+****************
 
-NAME:
-     P_HELPER_OBJECTS "lib_p_helper_objects"
 
-DEFINIERT IN:
-     <living/helpers.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property enthaelt eine Liste von Hilfsobjekten, die das Lebewesen,
-     in dem sie gesetzt ist, bei bestimmten Aktivitaeten wie Tauchen oder
-     Fliegen/Segeln unterstuetzt. Die Property enthaelt ein Mapping der Form
-     ([ HELPER_TYPE : ({ Callback-Closures }) ]).
+   P_HELPER_OBJECTS "lib_p_helper_objects"
 
-BEMERKUNGEN:
-     Externe Manipulationen an dieser Property bitte unterlassen, zum Ein-
-     und Austragen von Objekten gibt es die unten aufgefuehrten Methoden.
 
-SIEHE AUCH:
-     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
-     Properties:  P_AERIAL_HELPERS, P_AQUATIC_HELPERS
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <living/helpers.h>
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt eine Liste von Hilfsobjekten, die das Lebewesen,
+   in dem sie gesetzt ist, bei bestimmten Aktivitaeten wie Tauchen oder
+   Fliegen/Segeln unterstuetzt. Die Property enthaelt ein Mapping der Form
+   ([ HELPER_TYPE : ({ Callback-Closures }) ]).
+
+
+BEMERKUNGEN
+===========
+
+   Externe Manipulationen an dieser Property bitte unterlassen, zum Ein-
+   und Austragen von Objekten gibt es die unten aufgefuehrten Methoden.
+
+
+SIEHE AUCH
+==========
+
+   Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
+   Properties:  P_AERIAL_HELPERS, P_AQUATIC_HELPERS
+
 18.02.2013, Arathorn
-
diff --git a/doc/props/P_HIDE_EXITS b/doc/props/P_HIDE_EXITS
index 0c92a4a..c9aa2e5 100644
--- a/doc/props/P_HIDE_EXITS
+++ b/doc/props/P_HIDE_EXITS
@@ -1,35 +1,53 @@
+
 P_HIDE_EXITS
-NAME:
-     P_HIDE_EXITS                  "hide_exits"
+************
 
-DEFINIERT IN:
-     /sys/room/exits.h
 
-BESCHREIBUNG:
-     Ist diese Property in einem Raum auf einen Integerwert ungleich 0
-     gesetzt, werden einem Spieler fuer diesen Raum keine Ausgaenge angezeigt.
-     Auch der Text "Keine sichtbaren Ausgaenge." (oder so) kommt nicht.
-     Alternativ kann man auch ein array von strings uebergeben. In diesem
-     Fall werden all die Ausgaenge nicht angezeigt, deren Index in P_EXITS
-     in dem array vorkommt.
-     In diesem Fall wird ggf. der Text "Keine sichtbaren Ausgaenge."
-     ausgegeben.
+NAME
+====
 
-BEISPIEL:
-     AddExit("raus", "/ganz/wo/anders");
-     AddExit("weiter", "/in/der/naehe");
+   P_HIDE_EXITS                  "hide_exits"
 
-     // KEINE Ausgaenge anzeigen. Noch nicht mal, dass man keine sieht.
-     SetProp(P_HIDE_EXITS, 1);
 
-     // Der Ausgang weiter wird nicht angezeigt.
-     SetProp(P_HIDE_EXITS, ({"weiter"}) );
+DEFINIERT IN
+============
 
-     // Keinen Ausgang zeigen, aber den Text, dass keiner sichtbar, ausgeben.
-     SetProp(P_HIDE_EXITS, ({"weiter", "raus"}) );
+   /sys/room/exits.h
 
-SIEHE AUCH:
-     Aehnliches:	P_SHOW_EXITS
-     Sonstiges:		AddExit(), GetExits(), int_long(), int_short()
 
-25. Apr 1996 Highlander
\ No newline at end of file
+BESCHREIBUNG
+============
+
+   Ist diese Property in einem Raum auf einen Integerwert ungleich 0
+   gesetzt, werden einem Spieler fuer diesen Raum keine Ausgaenge angezeigt.
+   Auch der Text "Keine sichtbaren Ausgaenge." (oder so) kommt nicht.
+   Alternativ kann man auch ein array von strings uebergeben. In diesem
+   Fall werden all die Ausgaenge nicht angezeigt, deren Index in P_EXITS
+   in dem array vorkommt.
+   In diesem Fall wird ggf. der Text "Keine sichtbaren Ausgaenge."
+   ausgegeben.
+
+
+BEISPIEL
+========
+
+   AddExit("raus", "/ganz/wo/anders");
+   AddExit("weiter", "/in/der/naehe");
+
+   // KEINE Ausgaenge anzeigen. Noch nicht mal, dass man keine sieht.
+   SetProp(P_HIDE_EXITS, 1);
+
+   // Der Ausgang weiter wird nicht angezeigt.
+   SetProp(P_HIDE_EXITS, ({"weiter"}) );
+
+   // Keinen Ausgang zeigen, aber den Text, dass keiner sichtbar, ausgeben.
+   SetProp(P_HIDE_EXITS, ({"weiter", "raus"}) );
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches:        P_SHOW_EXITS
+   Sonstiges:         AddExit(), GetExits(), int_long(), int_short()
+
+25. Apr 1996 Highlander
diff --git a/doc/props/P_HISTMIN b/doc/props/P_HISTMIN
index e84d90c..ca35504 100644
--- a/doc/props/P_HISTMIN
+++ b/doc/props/P_HISTMIN
@@ -1,8 +1,21 @@
-NAME:
-    P_HISTMIN                     "histmin"                     
 
-DEFINIERT IN:
-    /sys/player.h
+P_HISTMIN
+*********
 
-BESCHREIBUNG:
-     Minimale Laenge, die eine Zeile haben muss, um in die History zu kommen
+
+NAME
+====
+
+   P_HISTMIN                     "histmin"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Minimale Laenge, die eine Zeile haben muss, um in die History zu kommen
diff --git a/doc/props/P_HIT_FUNC b/doc/props/P_HIT_FUNC
index c5b3b31..9bcc328 100644
--- a/doc/props/P_HIT_FUNC
+++ b/doc/props/P_HIT_FUNC
@@ -1,22 +1,38 @@
+
 P_HIT_FUNC
+**********
 
-NAME:
-     P_HIT_FUNC "hit_func"
 
-DEFINIERT IN:
-     <weapon.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Falls ein Objekt eine HitFunc() fuer die Waffe definiert, so muss
-     dieses Objekt in dieser Property eingetragen werden.
+   P_HIT_FUNC "hit_func"
 
-     Die Auswertung dieser Property erfolgt in QueryDamage().
 
-BEISPIELE:
-     Siehe das Beispiel zu HitFunc()
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     /std/weapon.c, HitFunc()
+   <weapon.h>
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   Falls ein Objekt eine HitFunc() fuer die Waffe definiert, so muss
+   dieses Objekt in dieser Property eingetragen werden.
+
+   Die Auswertung dieser Property erfolgt in QueryDamage().
+
+
+BEISPIELE
+=========
+
+   Siehe das Beispiel zu HitFunc()
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon.c, HitFunc()
+
 Last modified: Sun May 19 15:37:35 1996 by Wargon
diff --git a/doc/props/P_HOMEPAGE b/doc/props/P_HOMEPAGE
index 7d90438..5cf6bec 100644
--- a/doc/props/P_HOMEPAGE
+++ b/doc/props/P_HOMEPAGE
@@ -1,8 +1,21 @@
-NAME:
-    P_HOMEPAGE                    "homepage"                    
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_HOMEPAGE
+**********
 
-BESCHREIBUNG:
-     Die Homepage eines Spielers (mit dem Befehl 'url' zu setzen).
+
+NAME
+====
+
+   P_HOMEPAGE                    "homepage"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Die Homepage eines Spielers (mit dem Befehl 'url' zu setzen).
diff --git a/doc/props/P_HP b/doc/props/P_HP
index f2aea74..b7ded4a 100644
--- a/doc/props/P_HP
+++ b/doc/props/P_HP
@@ -1,25 +1,39 @@
-NAME:
-    P_HP                          "hp"
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_HP
+****
 
-BESCHREIBUNG:
 
-     - Lebewesen
-       Anzahl der Lebenspunkte des Wesens.
+NAME
+====
 
-     - Speisen/Kneipen
-       Heilwirkung einer Portion der Speise auf die Lebenspunkte
-       des Konsumenten
+   P_HP                          "hp"
 
-SIEHE AUCH:
-     Props:		P_MAX_HP
-     Veraenderung:	reduce_hit_points(), restore_hit_points()
-			do_damage(L), Defend(L)
-			buffer_hp()
-     Ueberwachung:	AddHpHook(L)
-     Speisen/Kneipen:   std/pub, wiz/food, consume
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   - Lebewesen
+     Anzahl der Lebenspunkte des Wesens.
+
+   - Speisen/Kneipen
+     Heilwirkung einer Portion der Speise auf die Lebenspunkte
+     des Konsumenten
+
+
+SIEHE AUCH
+==========
+
+   Props:             P_MAX_HP
+   Veraenderung:      reduce_hit_points(), restore_hit_points()
+                      do_damage(L), Defend(L)
+                      buffer_hp()
+   Ueberwachung:      AddHpHook(L)
+   Speisen/Kneipen:   std/pub, wiz/food, consume
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_HP_DELAY b/doc/props/P_HP_DELAY
index a807ad9..f15f748 100644
--- a/doc/props/P_HP_DELAY
+++ b/doc/props/P_HP_DELAY
@@ -1,10 +1,23 @@
-NAME:
-    P_HP_DELAY                 "hp_delay"                     
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_HP_DELAY
+**********
 
-BESCHREIBUNG:
-     Anzahl der heart_beats, bis P_HP um einen Punkt regeneriert.
-     Aenderungen dieser Property in Spielern beduerfen der 
-     Genehmigung des EM fuer Balance.
+
+NAME
+====
+
+   P_HP_DELAY                 "hp_delay"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der heart_beats, bis P_HP um einen Punkt regeneriert.
+   Aenderungen dieser Property in Spielern beduerfen der
+   Genehmigung des EM fuer Balance.
diff --git a/doc/props/P_HP_HOOKS b/doc/props/P_HP_HOOKS
index 28f1a1e..7bb48bf 100644
--- a/doc/props/P_HP_HOOKS
+++ b/doc/props/P_HP_HOOKS
@@ -1,19 +1,38 @@
-NAME:
-    P_HP_HOOKS                    "hp_hooks"                    
 
-DEFINIERT IN:
-    /sys/properties.h
+P_HP_HOOKS
+**********
 
-BESCHREIBUNG:
-     Welche Objekte sollen bei HP-Aenderungen benachrichtigt werden?
-     Diese Property bitte NICHT manipulieren! Zum Ein- und Austragen stehen
-     hierfuer AddHpHook() und RemoveHpHook() bereit.
 
-BEMERKUNGEN:
-    Das neuere Hooksystem (s. Manpage std/hooks) stellt ebenfalls Hooks zur
-    Ueberwachung von P_HP bereit.
+NAME
+====
 
-SIEHE AUCH:
-    AddHpHook(), RemoveHpHook(),
-    NotifyHpChange()
-    std/hooks
+   P_HP_HOOKS                    "hp_hooks"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Welche Objekte sollen bei HP-Aenderungen benachrichtigt werden?
+   Diese Property bitte NICHT manipulieren! Zum Ein- und Austragen stehen
+   hierfuer AddHpHook() und RemoveHpHook() bereit.
+
+
+BEMERKUNGEN
+===========
+
+   Das neuere Hooksystem (s. Manpage std/hooks) stellt ebenfalls Hooks zur
+   Ueberwachung von P_HP bereit.
+
+
+SIEHE AUCH
+==========
+
+   AddHpHook(), RemoveHpHook(),
+   NotifyHpChange()
+   std/hooks
diff --git a/doc/props/P_HUNTTIME b/doc/props/P_HUNTTIME
index 377ab18..e712a49 100644
--- a/doc/props/P_HUNTTIME
+++ b/doc/props/P_HUNTTIME
@@ -1,35 +1,59 @@
+
+P_HUNTTIME
+**********
+
+
 P_HUNTTIME (int)
+================
 
-NAME:
-     P_HUNTTIME					"p_lib_hunttime"
 
-DEFINIERT IN:
-     /sys/living/combat.h
+NAME
+====
 
-BESCHREIBUNG:
-    Mit dieser Property laesst sich festlegen, wie lange ein Monster einen 
-    Gegner verfolgt (also automatisch angreift), nachdem dieser geflohen ist.
-    Die Angabe erfolgt in Sekunden.
-    Die Standardzeit ist 600s (300 Heartbeats).
+   P_HUNTTIME                                 "p_lib_hunttime"
 
-BEMERKUNGEN:
-    1. Wenn der Standardwert akzeptabel ist, bitte die Prop auch nicht setzen.
-    2. Enthaelt die Property keinen Integer oder ist sie <= 0, wird sie 
-       ignoriert und der Standardwert von 600s verwendet.
-    3. Kaempft man mit einem Lebenwesen mit einem groesseren Wert als man 
-       selber und man selber hat das Verfolgen eingestellt, der Gegner aber 
-       nicht, wird dieser beim Reinkommen den Kampf neu starten (und den 
-       ersten Schlag haben).
 
-BEISPIEL:
-    Ein NPC soll sich erst eine Stunde nach Flucht des Gegners beruhigen.
-    protected void create() {
-      ...
-      SetProp(P_HUNTTIME, 3600);
-    }
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     InsertSingleEnemy, InsertEnemy
-     /std/living/combat.c
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Mit dieser Property laesst sich festlegen, wie lange ein Monster einen
+   Gegner verfolgt (also automatisch angreift), nachdem dieser geflohen ist.
+   Die Angabe erfolgt in Sekunden.
+   Die Standardzeit ist 600s (300 Heartbeats).
+
+
+BEMERKUNGEN
+===========
+
+   1. Wenn der Standardwert akzeptabel ist, bitte die Prop auch nicht setzen.
+   2. Enthaelt die Property keinen Integer oder ist sie <= 0, wird sie
+      ignoriert und der Standardwert von 600s verwendet.
+   3. Kaempft man mit einem Lebenwesen mit einem groesseren Wert als man
+      selber und man selber hat das Verfolgen eingestellt, der Gegner aber
+      nicht, wird dieser beim Reinkommen den Kampf neu starten (und den
+      ersten Schlag haben).
+
+
+BEISPIEL
+========
+
+   Ein NPC soll sich erst eine Stunde nach Flucht des Gegners beruhigen.
+   protected void create() {
+     ...
+     SetProp(P_HUNTTIME, 3600);
+   }
+
+
+SIEHE AUCH
+==========
+
+   InsertSingleEnemy, InsertEnemy
+   /std/living/combat.c
 
 13.03.2008, Zesstra
diff --git a/doc/props/P_IDS b/doc/props/P_IDS
index 311407b..dee9a74 100644
--- a/doc/props/P_IDS
+++ b/doc/props/P_IDS
@@ -1,25 +1,41 @@
+
 P_IDS
+*****
 
-NAME:
-     P_IDS "ids"
 
-DEFINIERT IN:
-     <thing/description.h>
+NAME
+====
 
-BESCHREIBUNG:
-     In dieser Property steht ein Array von den Strings, mit denen sich das
-     Objekt ansprechen laesst. Die Verwaltung dieser Property erfolgt ueber
-     die Funktionen AddId() und RemoveId().
+   P_IDS "ids"
 
-     Der Inhalt dieser Property wird von den Funktionen id() und (indirekt)
-     present() ausgewertet.
 
-BEMERKUNGEN:
-     Man sollte an dieser Property nicht "von Hand" herumfummeln, sondern
-     immer die zugehoerigen Funktionen benutzen!
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     /std/thing/description.c, AddId(), RemoveId()
+   <thing/description.h>
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   In dieser Property steht ein Array von den Strings, mit denen sich das
+   Objekt ansprechen laesst. Die Verwaltung dieser Property erfolgt ueber
+   die Funktionen AddId() und RemoveId().
+
+   Der Inhalt dieser Property wird von den Funktionen id() und (indirekt)
+   present() ausgewertet.
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte an dieser Property nicht "von Hand" herumfummeln, sondern
+   immer die zugehoerigen Funktionen benutzen!
+
+
+SIEHE AUCH
+==========
+
+   /std/thing/description.c, AddId(), RemoveId()
+
 Last modified: Sun May 19 20:17:36 1996 by Wargon
diff --git a/doc/props/P_IGNORE b/doc/props/P_IGNORE
index d95fd14..3436a09 100644
--- a/doc/props/P_IGNORE
+++ b/doc/props/P_IGNORE
@@ -1,22 +1,39 @@
-NAME:
-    P_IGNORE                      "ignore"
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_IGNORE
+********
 
-BESCHREIBUNG:
-    Array mit Spielern, Kommandos, Aktionen u.ae. die ignoriert werden.
-    In aller Regel sollte die Ignorierepruefung durch Aufruf von TestIgnore()
-    im Spieler erfolgen und nicht selber P_IGNORE durchsucht werden.
 
-BEMERKUNGEN:
-    Die Daten in dieser Property werden intern als Mapping gespeichert, nicht
-    als Array von Strings. Bitte nicht mit Set/Query() an dieser Property
-    herumbasteln.
+NAME
+====
 
-SIEHE AUCH:
-    TestIgnore, /std/player/comm.c
+   P_IGNORE                      "ignore"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Array mit Spielern, Kommandos, Aktionen u.ae. die ignoriert werden.
+   In aller Regel sollte die Ignorierepruefung durch Aufruf von TestIgnore()
+   im Spieler erfolgen und nicht selber P_IGNORE durchsucht werden.
+
+
+BEMERKUNGEN
+===========
+
+   Die Daten in dieser Property werden intern als Mapping gespeichert, nicht
+   als Array von Strings. Bitte nicht mit Set/Query() an dieser Property
+   herumbasteln.
+
+
+SIEHE AUCH
+==========
+
+   TestIgnore, /std/player/comm.c
+
 Last modified: 02.10.2011, Zesstra
-
diff --git a/doc/props/P_INDOORS b/doc/props/P_INDOORS
index c1ab07a..4483d10 100644
--- a/doc/props/P_INDOORS
+++ b/doc/props/P_INDOORS
@@ -1,33 +1,52 @@
-NAME:
-     P_INDOORS                     "indoors"
 
-DEFINIERT IN:
-     /sys/room/description.h
+P_INDOORS
+*********
 
-BESCHREIBUNG:
-     Gesetzt, wenn von dem Raum aus der Himmel nicht sichtbar ist.
 
-     Objekte oder Gilden werten diese Property teilweise aus, fuer
-     Innenraeume sollte sie also sinnvollerweise gesetzt werden.
+NAME
+====
 
-     Licht wird _nicht_ durch P_INDOORS beeinflusst, muss also
-     selbst angepasst werden.
+   P_INDOORS                     "indoors"
+
+
+DEFINIERT IN
+============
+
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt, wenn von dem Raum aus der Himmel nicht sichtbar ist.
+
+   Objekte oder Gilden werten diese Property teilweise aus, fuer
+   Innenraeume sollte sie also sinnvollerweise gesetzt werden.
+
+   Licht wird _nicht_ durch P_INDOORS beeinflusst, muss also
+   selbst angepasst werden.
+
 
 BEISPIEL
-     // Ein dunkler Innenraum:
-     SetProp(P_INDOORS, 1);            // ein Innenraum liegt innen :)
-     SetProp(P_LIGHT, 0);              // Licht auf 0
+========
 
-     // Ein richtig heller Aussenraum:
-     SetProp(P_INDOORS, 0);
-     SetProp(P_LIGHT, 2);
+   // Ein dunkler Innenraum:
+   SetProp(P_INDOORS, 1);            // ein Innenraum liegt innen :)
+   SetProp(P_LIGHT, 0);              // Licht auf 0
 
-     // Ein heller Aussenraum mit Mondlicht (gut fuer Delfen)
-     SetProp(P_INDOORS, 0);
-     SetProp(P_LIGHT, 1);
-     SetProp(P_LIGHT_TYPE, LT_STARS|LT_MOON);
+   // Ein richtig heller Aussenraum:
+   SetProp(P_INDOORS, 0);
+   SetProp(P_LIGHT, 2);
+
+   // Ein heller Aussenraum mit Mondlicht (gut fuer Delfen)
+   SetProp(P_INDOORS, 0);
+   SetProp(P_LIGHT, 1);
+   SetProp(P_LIGHT_TYPE, LT_STARS|LT_MOON);
+
 
 SIEHE AUCH
-     P_LIGHT, P_LIGHT_ABSORPTION, P_LIGHT_TYPE
+==========
+
+   P_LIGHT, P_LIGHT_ABSORPTION, P_LIGHT_TYPE
 
 25.Aug 2008 Gloinson
diff --git a/doc/props/P_INFO b/doc/props/P_INFO
index 06dabe6..f29c242 100644
--- a/doc/props/P_INFO
+++ b/doc/props/P_INFO
@@ -1,18 +1,36 @@
+
 P_INFO
-NAME:
-     P_INFO                        "info"                        
+******
 
-DEFINIERT IN:
-     /sys/properties.h
 
-BESCHREIBUNG:
-     Geheime Information, die ggf. ueber einen Zauberspruch
-     von Spielern ermittelt werden kann.
-     
-BEISPIEL:
-     SetProp(P_INFO,"Du ergruendest das Geheimnis.\n")
+NAME
+====
 
-SIEHE AUCH:
-     GetOwner(L)
+   P_INFO                        "info"
 
-24. April 2006, Vanion 
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Geheime Information, die ggf. ueber einen Zauberspruch
+   von Spielern ermittelt werden kann.
+
+
+BEISPIEL
+========
+
+   SetProp(P_INFO,"Du ergruendest das Geheimnis.\n")
+
+
+SIEHE AUCH
+==========
+
+   GetOwner(L)
+
+24. April 2006, Vanion
diff --git a/doc/props/P_INFORMME b/doc/props/P_INFORMME
index 4736933..c6dd0ed 100644
--- a/doc/props/P_INFORMME
+++ b/doc/props/P_INFORMME
@@ -1,14 +1,30 @@
-NAME:
-    P_INFORMME                    "informme"                    
 
-DEFINIERT IN:
-    /sys/properties.h
+P_INFORMME
+**********
 
-BESCHREIBUNG:
-    Enthaelt das Flag, ob der Spieler ueber ein-/ausloggende Spieler
-    informiert werden will.
 
-SIEHE AUCH:
-    Spielerkommando: inform
+NAME
+====
+
+   P_INFORMME                    "informme"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt das Flag, ob der Spieler ueber ein-/ausloggende Spieler
+   informiert werden will.
+
+
+SIEHE AUCH
+==========
+
+   Spielerkommando: inform
 
 6.Feb 2016 Gloinson
diff --git a/doc/props/P_INPC_HOME b/doc/props/P_INPC_HOME
index 31fea0b..1eafd4d 100644
--- a/doc/props/P_INPC_HOME
+++ b/doc/props/P_INPC_HOME
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_HOME                   "inpc_home"                   
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_HOME
+***********
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_HOME                   "inpc_home"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INPC_LAST_ENVIRONMENT b/doc/props/P_INPC_LAST_ENVIRONMENT
index 2b7437a..8f7cb68 100644
--- a/doc/props/P_INPC_LAST_ENVIRONMENT
+++ b/doc/props/P_INPC_LAST_ENVIRONMENT
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_LAST_ENVIRONMENT       "inpc_last_environment"       
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_LAST_ENVIRONMENT
+***********************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_LAST_ENVIRONMENT       "inpc_last_environment"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INPC_LAST_PLAYER_CONTACT b/doc/props/P_INPC_LAST_PLAYER_CONTACT
index f32cd02..14f8730 100644
--- a/doc/props/P_INPC_LAST_PLAYER_CONTACT
+++ b/doc/props/P_INPC_LAST_PLAYER_CONTACT
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_LAST_PLAYER_CONTACT    "inpc_last_player_contact"    
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_LAST_PLAYER_CONTACT
+**************************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_LAST_PLAYER_CONTACT    "inpc_last_player_contact"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INPC_WALK_AREA b/doc/props/P_INPC_WALK_AREA
index 3d7dfc6..9554d27 100644
--- a/doc/props/P_INPC_WALK_AREA
+++ b/doc/props/P_INPC_WALK_AREA
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_WALK_AREA              "inpc_walk_area"              
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_WALK_AREA
+****************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_WALK_AREA              "inpc_walk_area"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INPC_WALK_DELAYS b/doc/props/P_INPC_WALK_DELAYS
index f510764..e59deea 100644
--- a/doc/props/P_INPC_WALK_DELAYS
+++ b/doc/props/P_INPC_WALK_DELAYS
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_WALK_DELAYS            "inpc_walk_delay"             
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_WALK_DELAYS
+******************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_WALK_DELAYS            "inpc_walk_delay"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INPC_WALK_FLAGS b/doc/props/P_INPC_WALK_FLAGS
index 3e8749b..86c4835 100644
--- a/doc/props/P_INPC_WALK_FLAGS
+++ b/doc/props/P_INPC_WALK_FLAGS
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_WALK_FLAGS             "inpc_walk_flags"             
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_WALK_FLAGS
+*****************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_WALK_FLAGS             "inpc_walk_flags"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INPC_WALK_MODE b/doc/props/P_INPC_WALK_MODE
index 22da99d..134bb50 100644
--- a/doc/props/P_INPC_WALK_MODE
+++ b/doc/props/P_INPC_WALK_MODE
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_WALK_MODE              "inpc_walk_mode"              
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_WALK_MODE
+****************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_WALK_MODE              "inpc_walk_mode"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INPC_WALK_ROUTE b/doc/props/P_INPC_WALK_ROUTE
index 4d11cb1..762408d 100644
--- a/doc/props/P_INPC_WALK_ROUTE
+++ b/doc/props/P_INPC_WALK_ROUTE
@@ -1,8 +1,21 @@
-NAME:
-    P_INPC_WALK_ROUTE             "inpc_walk_route"             
 
-DEFINIERT IN:
-    /sys/inpc/walking.h
+P_INPC_WALK_ROUTE
+*****************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_INPC_WALK_ROUTE             "inpc_walk_route"
+
+
+DEFINIERT IN
+============
+
+   /sys/inpc/walking.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_INTERMUD b/doc/props/P_INTERMUD
index 6d4bd59..8019998 100644
--- a/doc/props/P_INTERMUD
+++ b/doc/props/P_INTERMUD
@@ -1,13 +1,25 @@
-NAME:
-    P_INTERMUD                    "intermud"                    
 
-DEFINIERT IN:
-    /sys/player/comm.h
+P_INTERMUD
+**********
 
-BESCHREIBUNG:
+
+NAME
+====
+
+   P_INTERMUD                    "intermud"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/comm.h
+
+
+BESCHREIBUNG
+============
+
    Die Bedeutung dieser Property ist in den praehistorischen Untiefen
    der Mudlib verlorengegangen.
    Wird nicht mehr benutzt.
    Nicht benutzen.
    Ignorieren.
-
diff --git a/doc/props/P_INTERNAL_EXTRA_LOOK b/doc/props/P_INTERNAL_EXTRA_LOOK
index 160125d..ffa78ad 100644
--- a/doc/props/P_INTERNAL_EXTRA_LOOK
+++ b/doc/props/P_INTERNAL_EXTRA_LOOK
@@ -1,39 +1,57 @@
-NAME:
-	P_INTERNAL_EXTRA_LOOK			"internal_extralook"
 
-DEFINIERT IN:
-	/sys/living/description.h
+P_INTERNAL_EXTRA_LOOK
+*********************
 
-BESCHREIBUNG:
-	Diese Property enthaelt ein Mapping, in dem alle einzelnen
-  Extra-Look-Eintraege des Livings enthalten sind. Dabei weden die Daten von
-  AddExtraLook() und RemoveExtraLook() verwaltet. Fragt man diese Prop mit
-  QueryProp() ab, erhaelt man die Ausgabe der gueltigen Extralooks des
-  Livings. Bei Abfrage per Query() erhaelt man ein Mapping mit allen
-  Eintraegen und deren Daten. Jeder Wert im Mapping ist erneut ein Mapping, 
-  welches folgende Keys enthalten kann:
-  - "xllook": String, der im Extralook des Living angezeigt wird.
-  - "xlduration": Zeitstempel (int), der angibt, wie lang der Eintrag gueltig
-                  ist. 0 == "Unendlich", negative Zahlen besagen, dass der
-                  Eintrag nur bis Reboot/Ende gueltig sein und abs(xlduration)
-                  ist der Zeitpunkt des Eintrages dieses Extralooks.
-  - "xlende": String, der nach Ablaufen an das Living ausgegeben wird.
-  - "xlfun": Funktion, die gerufen wird und den String zurueckliefern muss, 
-             der ausgeben werden soll.
-  - "xlendefun": Funktion, die gerufen wird, wenn der Eintrag abgelaufen ist
-                 und den String zurueckliefern muss, der dann ans Living
-                 ausgeben wird.
-  - "xlobjectname": Objekt, in dem die o.a. Funktionen gerufen werden.
 
-BEMERKUNG:
-  DIESE PROPERTY BITTE NIEMALS PER HAND MIT Set()/SetProp() AENDERN!
-  Die Daten in dieser Prop werden vom Living selber verwaltet. Extralooks
-  koennen mittel AddExtraLook() eingetragen und mit RemoveExtraLook() entfernt
-  werden.
+NAME
+====
 
-SIEHE AUCH:
-  long(), /std/living/description.c, /std/player/base.c
-  AddExtraLook(), RemoveExtraLook()
+   P_INTERNAL_EXTRA_LOOK                   "internal_extralook"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+         Diese Property enthaelt ein Mapping, in dem alle einzelnen
+   Extra-Look-Eintraege des Livings enthalten sind. Dabei weden die Daten von
+   AddExtraLook() und RemoveExtraLook() verwaltet. Fragt man diese Prop mit
+   QueryProp() ab, erhaelt man die Ausgabe der gueltigen Extralooks des
+   Livings. Bei Abfrage per Query() erhaelt man ein Mapping mit allen
+   Eintraegen und deren Daten. Jeder Wert im Mapping ist erneut ein Mapping,
+   welches folgende Keys enthalten kann:
+   - "xllook": String, der im Extralook des Living angezeigt wird.
+   - "xlduration": Zeitstempel (int), der angibt, wie lang der Eintrag gueltig
+                   ist. 0 == "Unendlich", negative Zahlen besagen, dass der
+                   Eintrag nur bis Reboot/Ende gueltig sein und abs(xlduration)
+                   ist der Zeitpunkt des Eintrages dieses Extralooks.
+   - "xlende": String, der nach Ablaufen an das Living ausgegeben wird.
+   - "xlfun": Funktion, die gerufen wird und den String zurueckliefern muss,
+              der ausgeben werden soll.
+   - "xlendefun": Funktion, die gerufen wird, wenn der Eintrag abgelaufen ist
+                  und den String zurueckliefern muss, der dann ans Living
+                  ausgeben wird.
+   - "xlobjectname": Objekt, in dem die o.a. Funktionen gerufen werden.
+
+
+BEMERKUNG
+=========
+
+   DIESE PROPERTY BITTE NIEMALS PER HAND MIT Set()/SetProp() AENDERN!
+   Die Daten in dieser Prop werden vom Living selber verwaltet. Extralooks
+   koennen mittel AddExtraLook() eingetragen und mit RemoveExtraLook() entfernt
+   werden.
+
+
+SIEHE AUCH
+==========
+
+   long(), /std/living/description.c, /std/player/base.c
+   AddExtraLook(), RemoveExtraLook()
+
 13.05.2007, Zesstra
diff --git a/doc/props/P_INT_LIGHT b/doc/props/P_INT_LIGHT
index 04504a6..dcf59b6 100644
--- a/doc/props/P_INT_LIGHT
+++ b/doc/props/P_INT_LIGHT
@@ -1,20 +1,36 @@
-NAME:
-    P_INT_LIGHT                       "int_light"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_INT_LIGHT
+***********
 
-BESCHREIBUNG:
-    Gibt den Lichtlevel an, der _in_ einem Objekt ist. Ein Abfragen dieser
-    Property kann z.B. in Raeumen sinnvoll sein, wenn es z.B. um das
-    aufwachen einer Eule oder einer Fledermaus geht. Zum Abfragen ob ein
-    Spieler etwas sehen kann, bitte auf jeden Fall P_PLAYER_LIGHT benutzen!
 
-    Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
-    da das Lichtlevel ggf. neu berechnet werden muss!
+NAME
+====
 
-    Ein direktes setzen dieser Property ist NICHT moeglich, hierzu bitte
-    P_LIGHT benutzen!
+   P_INT_LIGHT                       "int_light"
 
-SIEHE AUCH:
-    P_LIGHT, P_TOTAL_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt den Lichtlevel an, der _in_ einem Objekt ist. Ein Abfragen dieser
+   Property kann z.B. in Raeumen sinnvoll sein, wenn es z.B. um das
+   aufwachen einer Eule oder einer Fledermaus geht. Zum Abfragen ob ein
+   Spieler etwas sehen kann, bitte auf jeden Fall P_PLAYER_LIGHT benutzen!
+
+   Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
+   da das Lichtlevel ggf. neu berechnet werden muss!
+
+   Ein direktes setzen dieser Property ist NICHT moeglich, hierzu bitte
+   P_LIGHT benutzen!
+
+
+SIEHE AUCH
+==========
+
+   P_LIGHT, P_TOTAL_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
diff --git a/doc/props/P_INT_LONG b/doc/props/P_INT_LONG
index 3e59249..741e511 100644
--- a/doc/props/P_INT_LONG
+++ b/doc/props/P_INT_LONG
@@ -1,32 +1,53 @@
+
 P_INT_LONG
-NAME:
-     P_INT_LONG                    "int_long"
+**********
 
-DEFINIERT IN:
-     /sys/room/description.h
 
-BESCHREIBUNG:
-     Enthaelt Beschreibung, die man bekommt, wenn man sich in dem
-     Container (jeder Raum ist einer) umschaut als String.
+NAME
+====
 
-     Der Text sollte bereits umgebrochen sein.
+   P_INT_LONG                    "int_long"
 
-     Diese Property bestimmt die Ansicht des Containers von innen.
-     Fuer die Aussen(lang)ansicht muss P_LONG benutzt werden.
 
-BEMERKUNGEN:
-     - Beschreibungen fuer etwaige Tueren im Raum werden in int_long()
-       hinzugefuegt. (Frueher wurde dies in einer Querymethode auf diese Prop
-       gemacht.)
+DEFINIERT IN
+============
 
-BEISPIELE:
-     SetProp(P_INT_LONG, break_string(
-      "Du stehst in einem total spannenden Testraum. Seine absolute "
-      "Nichtigkeit erfuellt dich mit ehrfuerchtigem Grauen.",78));
+   /sys/room/description.h
 
-SIEHE AUCH:
-     Aehnliches:	P_INT_SHORT
-     Sonstiges:		int_long(), P_LONG
-			process_string(), break_string()
+
+BESCHREIBUNG
+============
+
+   Enthaelt Beschreibung, die man bekommt, wenn man sich in dem
+   Container (jeder Raum ist einer) umschaut als String.
+
+   Der Text sollte bereits umgebrochen sein.
+
+   Diese Property bestimmt die Ansicht des Containers von innen.
+   Fuer die Aussen(lang)ansicht muss P_LONG benutzt werden.
+
+
+BEMERKUNGEN
+===========
+
+   - Beschreibungen fuer etwaige Tueren im Raum werden in int_long()
+     hinzugefuegt. (Frueher wurde dies in einer Querymethode auf diese Prop
+     gemacht.)
+
+
+BEISPIELE
+=========
+
+   SetProp(P_INT_LONG, break_string(
+    "Du stehst in einem total spannenden Testraum. Seine absolute "
+    "Nichtigkeit erfuellt dich mit ehrfuerchtigem Grauen.",78));
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches:        P_INT_SHORT
+   Sonstiges:         int_long(), P_LONG
+                      process_string(), break_string()
 
 04.06.2009, Zesstra
diff --git a/doc/props/P_INT_SHORT b/doc/props/P_INT_SHORT
index 9c6a0af..618bbab 100644
--- a/doc/props/P_INT_SHORT
+++ b/doc/props/P_INT_SHORT
@@ -1,36 +1,56 @@
+
 P_INT_SHORT
-NAME:
-     P_INT_SHORT			"int_short"
+***********
 
-DEFINIERT IN:
-     /sys/thing/description.h
 
-BESCHREIBUNG:
-     Diese Property enthaelt die Innen-Kurzbeschreibung des Containers
-     als String oder Closure (mit String-Rueckgabewert).
+NAME
+====
 
-     Container sind hierbei z.B. Raeume.
-     ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
-	      Satzzeichen noch mit einem "\n" abgeschlossen sein
-	      (dies wird von den zustaendigen Funktionen erledigt).
+   P_INT_SHORT                        "int_short"
 
-     Man sollte die Property nicht auf 0 setzen.
 
-     Diese Property bestimmt die Ansicht des Containers von innen.
-     Fuer die Aussen(kurz)ansicht muss P_SHORT benutzt werden.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     - int_short() (bei Bewegung) filtert P_INT_SHORT durch process_string()
-       -> daher sind Closures moeglich
+   /sys/thing/description.h
 
-BEISPIELE:
-     // ein Gang sieht natuerlich so aus
-     SetProp(P_INT_SHORT, "Ein Gang");
 
-SIEHE AUCH:
-     Aehnliches:	P_INT_LONG
-     Sonstiges:		int_short(), P_SHORT
-			process_string(), break_string()
+BESCHREIBUNG
+============
 
-----------------------------------------------------------------------------
+   Diese Property enthaelt die Innen-Kurzbeschreibung des Containers
+   als String oder Closure (mit String-Rueckgabewert).
+
+   Container sind hierbei z.B. Raeume.
+   ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
+            Satzzeichen noch mit einem "\n" abgeschlossen sein
+            (dies wird von den zustaendigen Funktionen erledigt).
+
+   Man sollte die Property nicht auf 0 setzen.
+
+   Diese Property bestimmt die Ansicht des Containers von innen.
+   Fuer die Aussen(kurz)ansicht muss P_SHORT benutzt werden.
+
+
+BEMERKUNGEN
+===========
+
+   - int_short() (bei Bewegung) filtert P_INT_SHORT durch process_string()
+     -> daher sind Closures moeglich
+
+
+BEISPIELE
+=========
+
+   // ein Gang sieht natuerlich so aus
+   SetProp(P_INT_SHORT, "Ein Gang");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches:        P_INT_LONG
+   Sonstiges:         int_short(), P_SHORT
+                      process_string(), break_string()
+
 Last modified: Thu May 31 15:34:05 2001 by Patryn
diff --git a/doc/props/P_INVIS b/doc/props/P_INVIS
index 7022ea0..4063546 100644
--- a/doc/props/P_INVIS
+++ b/doc/props/P_INVIS
@@ -1,50 +1,65 @@
-NAME:
-     P_INVIS                       "invis"                       
 
-DEFINIERT IN:
-     /sys/player/base.h
+P_INVIS
+*******
 
-BESCHREIBUNG:
-     Die Property P_INVIS dient dazu, Objekte als unsichtbar zu kennzeichnen.
-     Hierbei versucht P_INVIS die moeglichen Interaktionen mit Spielern zu
-     minimieren (im Gegensatz zu einer fehlenden P_SHORT, welche das Objekt
-     nur einfach nicht-sichtbar macht).
-     
-     Man sollte drei Arten von unsichtbaren Objekten unterscheiden:
 
-     - Gegenstaende
-       Setzt man P_INVIS auf eine Zahl ungleich 0, wird der Gegenstand
-       unsichtbar und der Name zu "etwas". Zusaetzlich koennen Spieler ihn
-       nicht mehr ansprechen, d.h. nehmen, wegwerfen, weitergeben etc.
-       (Bei magier-eigenen Kommandos ist dies evtl. nicht umgesetzt...)
-       Setzt man P_SHORT auf 0, wird der Gegenstand nur nicht mehr in
-       der Inventarliste von Behaeltern/Raeumen angezeigt, er behaelt aber
-       seinen Namen und ist durch Spieler ansprechbar, wenn sie eine ID
-       kennen.
+NAME
+====
 
-     - NPCs
-       Bei gesetztem P_INVIS wird der NPC unsichtbar und sein Name wird zu
-       "Jemand". Zusaetzlich koennen Spieler ihn nicht mehr ansprechen, z.B.
-       toeten oder knuddeln.
-       (Bei magier-eigenen Kommandos ist dies evtl. nicht umgesetzt...)
-       Setzt man P_SHORT auf 0, wird der NPC nur nicht mehr in der
-       Inventarliste von Behaeltern/Raeumen angezeigt, er behaelt aber seinen
-       Namen und ist durch Spieler ansprechbar, wenn sie eine ID kennen. Auch
-       angreifen und kaempfen ist moeglich.
-     
-     - Magier
-       Magier macht man unsichtbar, indem man ihnen die Property P_INVIS auf
-       einen Wert <> 0 setzt.
-       *  Spieler duerfen nicht unsichtbar gemacht werden!               *
-       *  Wird ein Magier unsichtbar gemacht, muss man ihm die Property	 *
-       *  P_INVIS auf den Wert setzen, den die Property P_AGE zu diesem	 *
-       *  Zeitpunkt hat (keine F_QUERY_METHOD !).				                 *
-       Setzt man die Property auf den Wert 1, so erhaelt ein Spieler,
-       wenn er den entsp. Magier fingert, die Ausgabe: Alter: 00:00:02,
-       was genauso verraeterisch ist, wie ein Alter, dass bei einem
-       scheinbar nicht eingeloggten Magier immer weiter hochgezaehlt
-       wird.
+   P_INVIS                       "invis"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Die Property P_INVIS dient dazu, Objekte als unsichtbar zu kennzeichnen.
+   Hierbei versucht P_INVIS die moeglichen Interaktionen mit Spielern zu
+   minimieren (im Gegensatz zu einer fehlenden P_SHORT, welche das Objekt
+   nur einfach nicht-sichtbar macht).
+
+
+
+   Man sollte drei Arten von unsichtbaren Objekten unterscheiden:
+
+   - Gegenstaende
+     Setzt man P_INVIS auf eine Zahl ungleich 0, wird der Gegenstand
+     unsichtbar und der Name zu "etwas". Zusaetzlich koennen Spieler ihn
+     nicht mehr ansprechen, d.h. nehmen, wegwerfen, weitergeben etc.
+     (Bei magier-eigenen Kommandos ist dies evtl. nicht umgesetzt...)
+     Setzt man P_SHORT auf 0, wird der Gegenstand nur nicht mehr in
+     der Inventarliste von Behaeltern/Raeumen angezeigt, er behaelt aber
+     seinen Namen und ist durch Spieler ansprechbar, wenn sie eine ID
+     kennen.
+
+   - NPCs
+     Bei gesetztem P_INVIS wird der NPC unsichtbar und sein Name wird zu
+     "Jemand". Zusaetzlich koennen Spieler ihn nicht mehr ansprechen, z.B.
+     toeten oder knuddeln.
+     (Bei magier-eigenen Kommandos ist dies evtl. nicht umgesetzt...)
+     Setzt man P_SHORT auf 0, wird der NPC nur nicht mehr in der
+     Inventarliste von Behaeltern/Raeumen angezeigt, er behaelt aber seinen
+     Namen und ist durch Spieler ansprechbar, wenn sie eine ID kennen. Auch
+     angreifen und kaempfen ist moeglich.
+
+
+
+   - Magier
+     Magier macht man unsichtbar, indem man ihnen die Property P_INVIS auf
+     einen Wert <> 0 setzt.
+     *  Spieler duerfen nicht unsichtbar gemacht werden!               *
+     *  Wird ein Magier unsichtbar gemacht, muss man ihm die Property  *
+     *  P_INVIS auf den Wert setzen, den die Property P_AGE zu diesem  *
+     *  Zeitpunkt hat (keine F_QUERY_METHOD !).                                                *
+     Setzt man die Property auf den Wert 1, so erhaelt ein Spieler,
+     wenn er den entsp. Magier fingert, die Ausgabe: Alter: 00:00:02,
+     was genauso verraeterisch ist, wie ein Alter, dass bei einem
+     scheinbar nicht eingeloggten Magier immer weiter hochgezaehlt
+     wird.
+
 27.05.2015, Zesstra
-
diff --git a/doc/props/P_IP_NAME b/doc/props/P_IP_NAME
index 7b503ea..6003c80 100644
--- a/doc/props/P_IP_NAME
+++ b/doc/props/P_IP_NAME
@@ -1,8 +1,21 @@
-NAME:
-    P_IP_NAME                     "ip_name"                     
 
-DEFINIERT IN:
-    /sys/player.h
+P_IP_NAME
+*********
 
-BESCHREIBUNG:
-     Rechnername des Interactives
+
+NAME
+====
+
+   P_IP_NAME                     "ip_name"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Rechnername des Interactives
diff --git a/doc/props/P_IS_ARTILLERY b/doc/props/P_IS_ARTILLERY
index 051b20f..2afcd60 100644
--- a/doc/props/P_IS_ARTILLERY
+++ b/doc/props/P_IS_ARTILLERY
@@ -1,15 +1,30 @@
-NAME:
-	P_IS_ARTILLERY			"artillery"
 
-DEFINIERT IN:
-	/sys/combat.h
+P_IS_ARTILLERY
+**************
 
-BESCHREIBUNG:
-	Is ein Objekt Artillerie, so muss diese Property
-	gesetzt sein. (Derzeit einfach auf 1 setzen.)
 
-SIEHE AUCH:
-	artillerie
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_IS_ARTILLERY                  "artillery"
+
+
+DEFINIERT IN
+============
+
+   /sys/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Is ein Objekt Artillerie, so muss diese Property
+   gesetzt sein. (Derzeit einfach auf 1 setzen.)
+
+
+SIEHE AUCH
+==========
+
+   artillerie
+
 Last modified: Sam,  5. Jul 2003, 22:07:12 by Zook.
diff --git a/doc/props/P_ITEMS b/doc/props/P_ITEMS
index add4255..1fcafc5 100644
--- a/doc/props/P_ITEMS
+++ b/doc/props/P_ITEMS
@@ -1,9 +1,22 @@
-NAME:
-    P_ITEMS                       "items"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_ITEMS
+*******
 
-BESCHREIBUNG:
-     Definition von Gegenstaenden, die in dem Raum liegen sollen.
-     Erklaerung in einem Extrafile.
+
+NAME
+====
+
+   P_ITEMS                       "items"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Definition von Gegenstaenden, die in dem Raum liegen sollen.
+   Erklaerung in einem Extrafile.
diff --git a/doc/props/P_I_HATE_ALCOHOL b/doc/props/P_I_HATE_ALCOHOL
index f60a38f..0a0eefc 100644
--- a/doc/props/P_I_HATE_ALCOHOL
+++ b/doc/props/P_I_HATE_ALCOHOL
@@ -1,23 +1,41 @@
-NAME:
-    P_I_HATE_ALCOHOL                        "i_hate_alcohol"
 
-DEFINIERT IN:
-    /sys/inpc/boozing.h
+P_I_HATE_ALCOHOL
+****************
 
-BESCHREIBUNG:
-    Numerischer Wert, der die Obergrenze an P_ALCOHOL in einem Monster
-    definiert, welcher beim eigenstaendigen Tanken beruecksichtigt wird.
 
-BEMERKUNG:
-    Geht der Npc (und nur fuer solche ist diese Prop gedacht) eigen-
-    staendig tanken, werden vor dem Bestellen die Getraenke und Speisen
-    auf ihren Alkoholgehalt geprueft und mit dem aktuellen Wert von
-    P_ALCOHOL im Verhaeltnis zu P_I_HATE_ALCOHOL verglichen. Laege der
-    Wert fuer P_ALCOHOL dann ueber dem von P_I_HATE_ALCOHOL, wird dieses
-    Getraenk (diese Speise) nicht bestellt.
+NAME
+====
 
-SIEHE AUCH:
-     P_ALCOHOL, P_MAX_ALCOHOL
+   P_I_HATE_ALCOHOL                        "i_hate_alcohol"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/inpc/boozing.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert, der die Obergrenze an P_ALCOHOL in einem Monster
+   definiert, welcher beim eigenstaendigen Tanken beruecksichtigt wird.
+
+
+BEMERKUNG
+=========
+
+   Geht der Npc (und nur fuer solche ist diese Prop gedacht) eigen-
+   staendig tanken, werden vor dem Bestellen die Getraenke und Speisen
+   auf ihren Alkoholgehalt geprueft und mit dem aktuellen Wert von
+   P_ALCOHOL im Verhaeltnis zu P_I_HATE_ALCOHOL verglichen. Laege der
+   Wert fuer P_ALCOHOL dann ueber dem von P_I_HATE_ALCOHOL, wird dieses
+   Getraenk (diese Speise) nicht bestellt.
+
+
+SIEHE AUCH
+==========
+
+   P_ALCOHOL, P_MAX_ALCOHOL
+
 Last modified: Sam Apr 14 12:35:00 2001 by Tilly
diff --git a/doc/props/P_KEEPER b/doc/props/P_KEEPER
index c0275ba..63185c8 100644
--- a/doc/props/P_KEEPER
+++ b/doc/props/P_KEEPER
@@ -1,14 +1,26 @@
-NAME:
-    P_KEEPER                       "shop_keeper"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_KEEPER
+********
 
-BESCHREIBUNG:
-    In diese Property kann man in Kneipen und Laeden einen String schreiben.
-    Dann wird vor den Transaktionen geprueft, ob ein NPC anwesend ist,
-    der diesen String als ID hat.
-    Ist der NPC nicht vorhanden, kann nichts ge- oder verkauft werden.
 
-----------------------------------------------------------------------------
-Last modified: Mon Aug 23 14:29:00 1999 by Paracelsus
\ No newline at end of file
+NAME
+====
+
+   P_KEEPER                       "shop_keeper"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   In diese Property kann man in Kneipen und Laeden einen String schreiben.
+   Dann wird vor den Transaktionen geprueft, ob ein NPC anwesend ist,
+   der diesen String als ID hat.
+   Ist der NPC nicht vorhanden, kann nichts ge- oder verkauft werden.
+
+Last modified: Mon Aug 23 14:29:00 1999 by Paracelsus
diff --git a/doc/props/P_KEEP_ON_SELL b/doc/props/P_KEEP_ON_SELL
index 8a21407..ce5feba 100644
--- a/doc/props/P_KEEP_ON_SELL
+++ b/doc/props/P_KEEP_ON_SELL
@@ -1,8 +1,21 @@
-NAME:
-    P_KEEP_ON_SELL                "keep_on_sell"                
 
-DEFINIERT IN:
-    /sys/properties.h
+P_KEEP_ON_SELL
+**************
 
-BESCHREIBUNG:
-     Bei "verkaufe alles" wird das Objekt behalten.
+
+NAME
+====
+
+   P_KEEP_ON_SELL                "keep_on_sell"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Bei "verkaufe alles" wird das Objekt behalten.
diff --git a/doc/props/P_KILLER b/doc/props/P_KILLER
index 83f6b18..01bb0d1 100644
--- a/doc/props/P_KILLER
+++ b/doc/props/P_KILLER
@@ -1,10 +1,23 @@
-NAME:
-    P_KILLER                      "killer"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_KILLER
+********
 
-BESCHREIBUNG:
+
+NAME
+====
+
+   P_KILLER                      "killer"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
    Diese Property enthaelt das Objekt, welches das Lebewesen als letztes
    getoetet hat. Sie wird von do_damage(), heart_beat() (Vergiftungen) und
    die() (bei direkten Aufrufen) automatisch gesetzt. Ein manuelles
@@ -16,12 +29,18 @@
    waehrend eines NotifyPlayerDeath(), weil es evtl. noch andere Objekte gibt,
    die sich dafuer interessieren!
 
-BEMERKUNGEN:
+
+BEMERKUNGEN
+===========
+
    Normalerweise steht hier ein Objekt drin (s.o.). Es gibt allerdings eine
    Ausnahme: Stirbt ein Lebewesen an Gift, enthaelt P_KILLER den String
    "gift".
 
-SIEHE AUCH:
+
+SIEHE AUCH
+==========
+
    do_damage()
 
 29.08.2008, Zesstra
diff --git a/doc/props/P_KILLS b/doc/props/P_KILLS
index 3dae72d..7ec3dac 100644
--- a/doc/props/P_KILLS
+++ b/doc/props/P_KILLS
@@ -1,10 +1,23 @@
-NAME:
-    P_KILLS                       "playerkills"                 
 
-DEFINIERT IN:
-    /sys/properties.h
+P_KILLS
+*******
 
-BESCHREIBUNG:
-     Anzahl der Spieler, die dieser Spieler schon getoetet hat.
-     Unerlaubte Manipulation ist ein SCHWERES VERGEHEN gegen
-     die Mudreglen.
+
+NAME
+====
+
+   P_KILLS                       "playerkills"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der Spieler, die dieser Spieler schon getoetet hat.
+   Unerlaubte Manipulation ist ein SCHWERES VERGEHEN gegen
+   die Mudreglen.
diff --git a/doc/props/P_KILL_MSG b/doc/props/P_KILL_MSG
index 0a9e3bb..9437975 100644
--- a/doc/props/P_KILL_MSG
+++ b/doc/props/P_KILL_MSG
@@ -1,80 +1,96 @@
+
 P_KILL_MSG
-
-NAME:
-	P_KILL_MSG			"kill_msg"
-
-DEFINIERT IN:
-	/sys/properties.h
-
-BESCHREIBUNG:
-     Wenn ein Spieler getoetet wird, so erscheint dazu eine kurze Information
-     auf dem Todeskanal. Um dem toetenden Objekt zusaetzlich die Moeglichkeit
-     zu geben, noch etwas mehr auf diesem Kanal auszugeben, kann man in
-     dieser Property einen String uebergeben.
-     Noetige Zeilenumbrueche werden hierbei automatisch generiert.
-
-     Es ist auch moeglich anzugeben, ob Emotes verwendet werden und ob das
-     toetende Objekt ein Plural-Objekt ist. Hierzu uebergibt man ein Array
-     der Gestalt:
-
-	({Killmessage,Emotes}) bzw. ({Killmessage,Emotes,PLURAL})
-
-     Der Eintrag <Killmessage> stellt hierbei die Meldung selbst dar, PLURAL
-     gibt an, dass es sich um ein Plural-Objekt handelt und <Emotes> kann
-     folgende Werte annehmen:
-
-	MSG_SAY    - Meldung wird normal ausgegeben.
-	MSG_EMOTE  - Meldung erscheint als Emote.
-	MSG_GEMOTE - Meldung erscheint als Genitiv-Emote.
-	MSG_EMPTY  - Meldung erscheint ohne zuvorige Angabe des
-	               toetenden Objektes.
-
-     Moechte man die Meldung noch etwas "persoenlicher" ;-) gestalten, so
-     kann man den Platzhalter %s verwenden. An dessen Stelle wird dann der
-     Name des Verblichenen eingesetzt.
-
-BEISPIEL:
-     Ein nettes Beispiel ist das folgende: Wenn ein Spieler sich als
-     Drachentoeter bewehrt hat, so kann er traditionell in seinem Blut baden.
-     Hin und wieder ist jedoch auch der Drache erfolgreich, dem man eine
-     lustige Zusatzmeldung fuer den Todeskanal uebergeben kann:
-
-     void create() {
-       ::create();
-       ...
-       SetProp(P_KILL_MSG,"Jetzt bade ich mal in DEINEM Blut, %s!");
-       ...
-     }
+**********
 
 
-     Falls der 'Killer' ein Plural-Objekt oder -NPC war, koennte eine Meldung
-     auch folgendermassen aussehen:
+NAME
+====
 
-     SetProp(P_KILL_MSG,({"haun sich jetzt die Hucke voll.",
-			  MSG_EMOTE,
-			  PLURAL}));
-
-     wobei P_KILL_NAME hier natuerlich auf "Eine Menge Orks" oder
-     dergleichen gesetzt sein sollte. Auf dem Kanal waere dann dies zu
-     lesen:
-
-	[Tod:Lars] Eine Menge Orks haben gerade Orktoeter umgebracht.
-	[Tod:Eine Menge Orks haun sich jetzt die Hucke voll.]
+   P_KILL_MSG                      "kill_msg"
 
 
-     Weiteres Beispiel.
-     Man habe einen NPC, dessen Killname als Plural aufzufassen ist, der aber
-     keinen zusaetlichen Text auf -Tod bringen soll.
+DEFINIERT IN
+============
 
-     SetProp(P_NAME, "Eine Horde Gummibaeren");
-     SetProp(P_KILL_NAME, "Viele kleine Gummibaeren");
-     SetProp(P_KILL_MSG, ({0, 0, 1}));
+   /sys/properties.h
 
-SIEHE AUCH:
-     Tod:		die(L)
-     Todesmeldungen:	P_KILL_NAME, P_DIE_MSG, P_MURDER_MSG
-			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
-     Sonstiges:		P_CORPSE, P_NOCORPSE, /room/death/death_room.c
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Wenn ein Spieler getoetet wird, so erscheint dazu eine kurze Information
+   auf dem Todeskanal. Um dem toetenden Objekt zusaetzlich die Moeglichkeit
+   zu geben, noch etwas mehr auf diesem Kanal auszugeben, kann man in
+   dieser Property einen String uebergeben.
+   Noetige Zeilenumbrueche werden hierbei automatisch generiert.
+
+   Es ist auch moeglich anzugeben, ob Emotes verwendet werden und ob das
+   toetende Objekt ein Plural-Objekt ist. Hierzu uebergibt man ein Array
+   der Gestalt:
+
+      ({Killmessage,Emotes}) bzw. ({Killmessage,Emotes,PLURAL})
+
+   Der Eintrag <Killmessage> stellt hierbei die Meldung selbst dar, PLURAL
+   gibt an, dass es sich um ein Plural-Objekt handelt und <Emotes> kann
+   folgende Werte annehmen:
+
+      MSG_SAY    - Meldung wird normal ausgegeben.
+      MSG_EMOTE  - Meldung erscheint als Emote.
+      MSG_GEMOTE - Meldung erscheint als Genitiv-Emote.
+      MSG_EMPTY  - Meldung erscheint ohne zuvorige Angabe des
+                     toetenden Objektes.
+
+   Moechte man die Meldung noch etwas "persoenlicher" ;-) gestalten, so
+   kann man den Platzhalter %s verwenden. An dessen Stelle wird dann der
+   Name des Verblichenen eingesetzt.
+
+
+BEISPIEL
+========
+
+   Ein nettes Beispiel ist das folgende: Wenn ein Spieler sich als
+   Drachentoeter bewehrt hat, so kann er traditionell in seinem Blut baden.
+   Hin und wieder ist jedoch auch der Drache erfolgreich, dem man eine
+   lustige Zusatzmeldung fuer den Todeskanal uebergeben kann:
+
+   void create() {
+     ::create();
+     ...
+     SetProp(P_KILL_MSG,"Jetzt bade ich mal in DEINEM Blut, %s!");
+     ...
+   }
+
+
+   Falls der 'Killer' ein Plural-Objekt oder -NPC war, koennte eine Meldung
+   auch folgendermassen aussehen:
+
+   SetProp(P_KILL_MSG,({"haun sich jetzt die Hucke voll.",
+                        MSG_EMOTE,
+                        PLURAL}));
+
+   wobei P_KILL_NAME hier natuerlich auf "Eine Menge Orks" oder
+   dergleichen gesetzt sein sollte. Auf dem Kanal waere dann dies zu
+   lesen:
+
+      [Tod:Lars] Eine Menge Orks haben gerade Orktoeter umgebracht.
+      [Tod:Eine Menge Orks haun sich jetzt die Hucke voll.]
+
+
+   Weiteres Beispiel.
+   Man habe einen NPC, dessen Killname als Plural aufzufassen ist, der aber
+   keinen zusaetlichen Text auf -Tod bringen soll.
+
+   SetProp(P_NAME, "Eine Horde Gummibaeren");
+   SetProp(P_KILL_NAME, "Viele kleine Gummibaeren");
+   SetProp(P_KILL_MSG, ({0, 0, 1}));
+
+
+SIEHE AUCH
+==========
+
+   Tod:               die(L)
+   Todesmeldungen:    P_KILL_NAME, P_DIE_MSG, P_MURDER_MSG
+                      P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+   Sonstiges:         P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
 Last modified: Wed Aug 21 14:36:04 2002 by Bambi
diff --git a/doc/props/P_KILL_NAME b/doc/props/P_KILL_NAME
index 3f214ab..0504066 100644
--- a/doc/props/P_KILL_NAME
+++ b/doc/props/P_KILL_NAME
@@ -1,43 +1,59 @@
+
 P_KILL_NAME
+***********
 
-NAME:
-     P_KILL_NAME			"kill_name"
 
-DEFINIERT IN:
-     /sys/properties.h
+NAME
+====
 
-BESCHREIBUNG:
-     Wenn ein Spieler getoetet wird, so erscheint eine kurze Information auf
-     dem Todeskanal. Im Normalfall werden die Informationen aus P_NAME,
-     P_ARTICLE und P_GENDER des toetenden Objektes verwendet, um einen Namen
-     fuer eben dieses Objekt zu kreieren. Manchmal moechte man jedoch einen
-     davon unabhaengigen Namen dort stehen haben. Dann kommt die Property
-     P_KILL_NAME zum Einsatz.
-     Man sollte beachten, dass der Name des Toetenden nicht zu lang sein
-     sollte, denn obwohl bei einer Todesmeldung automatisch umgebrochen wird,
-     kann es doch ziemlich stoeren. Wenn das toetende Objekt ein Plural-
-     Objekt ist, so kann man dies zusaetzlich in der Property P_KILL_MSG
-     angeben.
+   P_KILL_NAME                        "kill_name"
 
-BEISPIEL:
-     Eine Wolke, die wahlweise zwischen verschiedenen Zustaenden mutiert,
-     koennte mal eine Eiswolke, mal eine Giftwolke oder auch mal eine
-     Feuerwolke sein. Fuer den Todeskanal soll jedoch immer erscheinen:
-     '[Tod:] Eine mutierende Wolke hat gerade <Spieler> umgebracht.'
 
-     void create()
-     {
-       ::create();
-       ...
-       SetProp(P_KILL_NAME,"Eine mutierende Wolke");
-       ...
-     }
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     Tod:		die(L)
-     Todesmeldungen:	P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
-			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
-     Sonstiges:		P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+   /sys/properties.h
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   Wenn ein Spieler getoetet wird, so erscheint eine kurze Information auf
+   dem Todeskanal. Im Normalfall werden die Informationen aus P_NAME,
+   P_ARTICLE und P_GENDER des toetenden Objektes verwendet, um einen Namen
+   fuer eben dieses Objekt zu kreieren. Manchmal moechte man jedoch einen
+   davon unabhaengigen Namen dort stehen haben. Dann kommt die Property
+   P_KILL_NAME zum Einsatz.
+   Man sollte beachten, dass der Name des Toetenden nicht zu lang sein
+   sollte, denn obwohl bei einer Todesmeldung automatisch umgebrochen wird,
+   kann es doch ziemlich stoeren. Wenn das toetende Objekt ein Plural-
+   Objekt ist, so kann man dies zusaetzlich in der Property P_KILL_MSG
+   angeben.
+
+
+BEISPIEL
+========
+
+   Eine Wolke, die wahlweise zwischen verschiedenen Zustaenden mutiert,
+   koennte mal eine Eiswolke, mal eine Giftwolke oder auch mal eine
+   Feuerwolke sein. Fuer den Todeskanal soll jedoch immer erscheinen:
+   '[Tod:] Eine mutierende Wolke hat gerade <Spieler> umgebracht.'
+
+   void create()
+   {
+     ::create();
+     ...
+     SetProp(P_KILL_NAME,"Eine mutierende Wolke");
+     ...
+   }
+
+
+SIEHE AUCH
+==========
+
+   Tod:               die(L)
+   Todesmeldungen:    P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+                      P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+   Sonstiges:         P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_KNOWN_POTIONROOMS b/doc/props/P_KNOWN_POTIONROOMS
index f5adb97..29e17d3 100644
--- a/doc/props/P_KNOWN_POTIONROOMS
+++ b/doc/props/P_KNOWN_POTIONROOMS
@@ -1,19 +1,35 @@
-NAME:
-    P_KNOWN_POTIONROOMS                 "known_potionrooms"                 
 
-DEFINIERT IN:
-    /sys/player/potion.h
+P_KNOWN_POTIONROOMS
+*******************
 
-BESCHREIBUNG:
-    Array mit den Nummern der Raeume, in denen der Spieler Zauber-
-    traenke finden kann. Die Zuordnung der Raeume und Nummern
-    geschieht im Potionmaster.
 
-    Nur lesbare _query - Property.
+NAME
+====
 
-SIEHE AUCH:
-    Sonstiges: zaubertraenke, /secure/potionmaster.c, /room/orakel.c
-    Verwandt:  FindPotion(), AddKnownPotion(), RemoveKnownPotion(), InList()
-    Props:     P_POTIONROOMS
+   P_KNOWN_POTIONROOMS                 "known_potionrooms"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/potion.h
+
+
+BESCHREIBUNG
+============
+
+   Array mit den Nummern der Raeume, in denen der Spieler Zauber-
+   traenke finden kann. Die Zuordnung der Raeume und Nummern
+   geschieht im Potionmaster.
+
+   Nur lesbare _query - Property.
+
+
+SIEHE AUCH
+==========
+
+   Sonstiges: zaubertraenke, /secure/potionmaster.c, /room/orakel.c
+   Verwandt:  FindPotion(), AddKnownPotion(), RemoveKnownPotion(), InList()
+   Props:     P_POTIONROOMS
 
 6.Feb 2016 Gloinson
diff --git a/doc/props/P_LASTDIR b/doc/props/P_LASTDIR
index eae9071..2695f06 100644
--- a/doc/props/P_LASTDIR
+++ b/doc/props/P_LASTDIR
@@ -1,15 +1,28 @@
-NAME:
-    P_LASTDIR                  "p_lib_lastdir"
 
-DEFINIERT IN:
-    /sys/shells.h
+P_LASTDIR
+*********
 
-BESCHREIBUNG:
-    Das jeweils letzte Verzeichnis, in dem der Magier war.
-    (Nur fuer Magier von Belang)
+
+NAME
+====
+
+   P_LASTDIR                  "p_lib_lastdir"
+
+
+DEFINIERT IN
+============
+
+   /sys/shells.h
+
+
+BESCHREIBUNG
+============
+
+   Das jeweils letzte Verzeichnis, in dem der Magier war.
+   (Nur fuer Magier von Belang)
 
 Siehe auch:
-    P_CURRENTDIR
+   P_CURRENTDIR
 
 Letzte Aenderung:
-    03.05.2016, Zesstra
+   03.05.2016, Zesstra
diff --git a/doc/props/P_LAST_COMBAT_TIME b/doc/props/P_LAST_COMBAT_TIME
index b3df96d..941ec1e 100644
--- a/doc/props/P_LAST_COMBAT_TIME
+++ b/doc/props/P_LAST_COMBAT_TIME
@@ -1,23 +1,38 @@
-NAME:
-	P_LAST_COMBAT_TIME		"last_combat_time"
 
-DEFINIERT IN:
-	/sys/combat.h
+P_LAST_COMBAT_TIME
+******************
 
-BESCHREIBUNG:
-	In dieser Property wird genau die Zeit festgehalten, zu der ein
-	Lebewesen zuletzt einen Angriff abgewehrt oder einen Angriff
-	durchgefuehrt hat. Die Property enthaelt diese Information hierbei
-	immer in Form eines Integerwertes.
-	Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte, wann
-	ein Lebewesen zuletzt gekaempft hat. Es ist beispielsweise nicht
-	moeglich, waehrend oder auch unmittelbar nach einem Kampf den Befehl
-	'Ende' zu nutzen, da dies zur Flucht missbraucht werden kann. Dafuer
-	wird der Wert der Property zuvor ausgewertet.
 
-SIEHE AUCH:
-	P_LAST_DAMTIME, P_LAST_DAMAGE, P_LAST_DAMTYPES, Attack(), Defend(),
-	/std/living/combat.c, /std/living/life.c
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_LAST_COMBAT_TIME              "last_combat_time"
+
+
+DEFINIERT IN
+============
+
+   /sys/combat.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property wird genau die Zeit festgehalten, zu der ein
+   Lebewesen zuletzt einen Angriff abgewehrt oder einen Angriff
+   durchgefuehrt hat. Die Property enthaelt diese Information hierbei
+   immer in Form eines Integerwertes.
+   Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte, wann
+   ein Lebewesen zuletzt gekaempft hat. Es ist beispielsweise nicht
+   moeglich, waehrend oder auch unmittelbar nach einem Kampf den Befehl
+   'Ende' zu nutzen, da dies zur Flucht missbraucht werden kann. Dafuer
+   wird der Wert der Property zuvor ausgewertet.
+
+
+SIEHE AUCH
+==========
+
+   P_LAST_DAMTIME, P_LAST_DAMAGE, P_LAST_DAMTYPES, Attack(), Defend(),
+   /std/living/combat.c, /std/living/life.c
+
 Last modified: Wed May 26 16:43:00 1999 by Patryn
diff --git a/doc/props/P_LAST_COMMAND_ENV b/doc/props/P_LAST_COMMAND_ENV
index 576e34d..40bd6a0 100644
--- a/doc/props/P_LAST_COMMAND_ENV
+++ b/doc/props/P_LAST_COMMAND_ENV
@@ -1,15 +1,30 @@
+
 P_LAST_COMMAND_ENV
-NAME:
-    P_LAST_COMMAND_ENV            "last_command_env"            
+******************
 
-DEFINIERT IN:
-    /sys/player.h
 
-BESCHREIBUNG:
-     Der Raum, in dem das letzte Kommando eingegeben wurde.
+NAME
+====
 
-BEMERKUNGEN:
-     Keine echte Property, _query_last_command_env() ist
-     in /std/players/command.c implementiert.
+   P_LAST_COMMAND_ENV            "last_command_env"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Der Raum, in dem das letzte Kommando eingegeben wurde.
+
+
+BEMERKUNGEN
+===========
+
+   Keine echte Property, _query_last_command_env() ist
+   in /std/players/command.c implementiert.
 
 14.Feb.2004 Gloinson
diff --git a/doc/props/P_LAST_CONTENT_CHANGE b/doc/props/P_LAST_CONTENT_CHANGE
index 0fa64bb..f128774 100644
--- a/doc/props/P_LAST_CONTENT_CHANGE
+++ b/doc/props/P_LAST_CONTENT_CHANGE
@@ -1,16 +1,32 @@
-NAME:
-    P_LAST_CONTENT_CHANGE         "last_content_change"         
 
-DEFINIERT IN:
-    /sys/properties.h
+P_LAST_CONTENT_CHANGE
+*********************
 
-BESCHREIBUNG:
-     Wann wurde zum letzten Mal was ins Obj gestopft oder rausgenommen?
-     Wichtig fuer den Weight-Cache
 
-ANMERKUNG:
-     Die Property kann nur ueber QueryProp() und SetProp() ausgelesen bzw.
-     gesetzt werden. Query() und Set() funktionieren *nicht*.
+NAME
+====
 
-     Ausserdem fuehrt ein Setzen per SetProp() zu einer Erhoehung des 
-     Wertes um eins - unabhaengig vom gesetzten Wert.
+   P_LAST_CONTENT_CHANGE         "last_content_change"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wann wurde zum letzten Mal was ins Obj gestopft oder rausgenommen?
+   Wichtig fuer den Weight-Cache
+
+
+ANMERKUNG
+=========
+
+   Die Property kann nur ueber QueryProp() und SetProp() ausgelesen bzw.
+   gesetzt werden. Query() und Set() funktionieren *nicht*.
+
+   Ausserdem fuehrt ein Setzen per SetProp() zu einer Erhoehung des
+   Wertes um eins - unabhaengig vom gesetzten Wert.
diff --git a/doc/props/P_LAST_DAMAGE b/doc/props/P_LAST_DAMAGE
index 8d618b1..66388b7 100644
--- a/doc/props/P_LAST_DAMAGE
+++ b/doc/props/P_LAST_DAMAGE
@@ -1,22 +1,37 @@
-NAME:
-	P_LAST_DAMAGE			"last_damage"
 
-DEFINIERT IN:
-	/sys/living/combat.h
+P_LAST_DAMAGE
+*************
 
-BESCHREIBUNG:
-	In dieser Property wird genau die Schadensstaerke festgehalten,
-	welche ein Lebewesen zuletzt abbekommen hat. Die Property enthaelt
-	diese Information hierbei immer in Form eines Integerwertes.
-	Auch die Staerke des Giftschadens durch die Wirkung einer Vergiftung
-	wird hier festgehalten.
-	Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte,
-	welche Schadensstaerke nach Einwirkung von Defendern, Ruestung,
-	Hooks und Skills uebriggeblieben ist.
 
-SIEHE AUCH:
-	P_LAST_DAMTIME, P_LAST_DAMTYPES, Defend(),
-	/std/living/combat.c, /std/living/life.c
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_LAST_DAMAGE                   "last_damage"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property wird genau die Schadensstaerke festgehalten,
+   welche ein Lebewesen zuletzt abbekommen hat. Die Property enthaelt
+   diese Information hierbei immer in Form eines Integerwertes.
+   Auch die Staerke des Giftschadens durch die Wirkung einer Vergiftung
+   wird hier festgehalten.
+   Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte,
+   welche Schadensstaerke nach Einwirkung von Defendern, Ruestung,
+   Hooks und Skills uebriggeblieben ist.
+
+
+SIEHE AUCH
+==========
+
+   P_LAST_DAMTIME, P_LAST_DAMTYPES, Defend(),
+   /std/living/combat.c, /std/living/life.c
+
 Last modified: Tue Jan 26 12:34:29 1999 by Patryn
diff --git a/doc/props/P_LAST_DAMTIME b/doc/props/P_LAST_DAMTIME
index 72ffb51..7e6d0ea 100644
--- a/doc/props/P_LAST_DAMTIME
+++ b/doc/props/P_LAST_DAMTIME
@@ -1,22 +1,37 @@
-NAME:
-	P_LAST_DAMTIME			"last_damtime"
 
-DEFINIERT IN:
-	/sys/living/combat.h
+P_LAST_DAMTIME
+**************
 
-BESCHREIBUNG:
-	In dieser Property wird genau die Zeit festgehalten, zu der ein
-	Lebewesen zuletzt einen Schaden abbekommen hat. Die Property
-	enthaelt diese Information hierbei immer in Form eines
-	Integerwertes.
-	Auch der Zeitpunkt der Einwirkung von Giftschaden durch die Wirkung
-	einer Vergiftung wird hier festgehalten.
-	Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte, wann
-	ein Lebewesen zuletzt verletzt wurde.
 
-SIEHE AUCH:
-	P_LAST_COMBAT_TIME, P_LAST_DAMAGE, P_LAST_DAMTYPES, Defend(),
-	/std/living/combat.c, /std/living/life.c
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_LAST_DAMTIME                  "last_damtime"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property wird genau die Zeit festgehalten, zu der ein
+   Lebewesen zuletzt einen Schaden abbekommen hat. Die Property
+   enthaelt diese Information hierbei immer in Form eines
+   Integerwertes.
+   Auch der Zeitpunkt der Einwirkung von Giftschaden durch die Wirkung
+   einer Vergiftung wird hier festgehalten.
+   Dieser Wert koennte z.B. wichtig sein, wenn man wissen moechte, wann
+   ein Lebewesen zuletzt verletzt wurde.
+
+
+SIEHE AUCH
+==========
+
+   P_LAST_COMBAT_TIME, P_LAST_DAMAGE, P_LAST_DAMTYPES, Defend(),
+   /std/living/combat.c, /std/living/life.c
+
 Last modified: Wed May 26 16:44:38 1999 by Patryn
diff --git a/doc/props/P_LAST_DAMTYPES b/doc/props/P_LAST_DAMTYPES
index 9d7b060..ecdf571 100644
--- a/doc/props/P_LAST_DAMTYPES
+++ b/doc/props/P_LAST_DAMTYPES
@@ -1,21 +1,36 @@
-NAME:
-	P_LAST_DAMTYPES			"last_damtypes"
 
-DEFINIERT IN:
-	/sys/living/combat.h
+P_LAST_DAMTYPES
+***************
 
-BESCHREIBUNG:
-	In dieser Property werden genau die Schadensarten festgehalten,
-	welche ein Lebewesen zuletzt abbekommen hat. Die Property enthaelt
-	diese Information hierbei immer in Form eines Arrays.
-	Auch der Giftschaden durch die Wirkung einer Vergiftung wird hier
-	festgehalten.
-	Dieser Wert koennte z.B. wichtig sein, wenn man nach dem Tod eines
-	Lebewesens feststellen moechte, durch was es umgekommen ist.
 
-SIEHE AUCH:
-	P_LAST_DAMAGE, P_LAST_DAMTIME, Defend(),
-	/std/living/combat.c, /std/living/life.c
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_LAST_DAMTYPES                 "last_damtypes"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property werden genau die Schadensarten festgehalten,
+   welche ein Lebewesen zuletzt abbekommen hat. Die Property enthaelt
+   diese Information hierbei immer in Form eines Arrays.
+   Auch der Giftschaden durch die Wirkung einer Vergiftung wird hier
+   festgehalten.
+   Dieser Wert koennte z.B. wichtig sein, wenn man nach dem Tod eines
+   Lebewesens feststellen moechte, durch was es umgekommen ist.
+
+
+SIEHE AUCH
+==========
+
+   P_LAST_DAMAGE, P_LAST_DAMTIME, Defend(),
+   /std/living/combat.c, /std/living/life.c
+
 Last modified: Tue Jan 26 12:34:29 1999 by Patryn
diff --git a/doc/props/P_LAST_DEATH_PROPS b/doc/props/P_LAST_DEATH_PROPS
index 712e04e..7249dad 100644
--- a/doc/props/P_LAST_DEATH_PROPS
+++ b/doc/props/P_LAST_DEATH_PROPS
@@ -1,18 +1,32 @@
-NAME:
-    P_LAST_DEATH_PROPS                "last_death_props"
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_LAST_DEATH_PROPS
+******************
 
-BESCHREIBUNG:
-     Diese Property enthaelt nach dem Tod eines Spielers ein Mapping mit 
-     den Werte aller Properties, die im die() zurueckgesetzt werden.
 
-     Auf diese Weise kann ein Objekt auch im NotifyPlayerDeath() noch 
-     auf die Werte zurueckgreifen, obwohl sie bereits geloescht sind.
+NAME
+====
 
-     Folgende Properties werden so gesichert:
-   
-     P_POISON, P_FROG, P_ALCOHOL, P_DRINK, P_FOOD , P_BLIND, P_DEAF, 
-     P_MAX_HANDS, P_PARA, P_NO_REGENERATION , P_HP, P_SP, P_LAST_DEATH_TIME
+   P_LAST_DEATH_PROPS                "last_death_props"
 
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt nach dem Tod eines Spielers ein Mapping mit
+   den Werte aller Properties, die im die() zurueckgesetzt werden.
+
+   Auf diese Weise kann ein Objekt auch im NotifyPlayerDeath() noch
+   auf die Werte zurueckgreifen, obwohl sie bereits geloescht sind.
+
+   Folgende Properties werden so gesichert:
+
+
+
+   P_POISON, P_FROG, P_ALCOHOL, P_DRINK, P_FOOD , P_BLIND, P_DEAF,
+   P_MAX_HANDS, P_PARA, P_NO_REGENERATION , P_HP, P_SP, P_LAST_DEATH_TIME
diff --git a/doc/props/P_LAST_DEATH_TIME b/doc/props/P_LAST_DEATH_TIME
index 71bd787..669e7a1 100644
--- a/doc/props/P_LAST_DEATH_TIME
+++ b/doc/props/P_LAST_DEATH_TIME
@@ -1,8 +1,21 @@
-NAME:
-    P_LAST_DEATH_TIME                "last_death_time"
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_LAST_DEATH_TIME
+*****************
 
-BESCHREIBUNG:
-     Der Zeitpunkt des letzten Todes des Spielers.
+
+NAME
+====
+
+   P_LAST_DEATH_TIME                "last_death_time"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Der Zeitpunkt des letzten Todes des Spielers.
diff --git a/doc/props/P_LAST_LOGIN b/doc/props/P_LAST_LOGIN
index 9287654..4ad7360 100644
--- a/doc/props/P_LAST_LOGIN
+++ b/doc/props/P_LAST_LOGIN
@@ -1,16 +1,35 @@
-NAME:
-    P_LAST_LOGIN                  "last_login"                  
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_LAST_LOGIN
+************
 
-BESCHREIBUNG:
-     Zeitpunkt des letzten Logins
 
-BEMERKUNGEN:
-     Gegen aeussere Aenderung und Set/QueryMethoden geschuetzt.
+NAME
+====
 
-SIEHE AUCH:
-     P_LAST_LOGOUT, save_me
+   P_LAST_LOGIN                  "last_login"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Zeitpunkt des letzten Logins
+
+
+BEMERKUNGEN
+===========
+
+   Gegen aeussere Aenderung und Set/QueryMethoden geschuetzt.
+
+
+SIEHE AUCH
+==========
+
+   P_LAST_LOGOUT, save_me
 
 28. Jan 2013 Gloinson
diff --git a/doc/props/P_LAST_LOGOUT b/doc/props/P_LAST_LOGOUT
index 296ae92..e94e89e 100644
--- a/doc/props/P_LAST_LOGOUT
+++ b/doc/props/P_LAST_LOGOUT
@@ -1,20 +1,39 @@
-NAME:
-    P_LAST_LOGOUT                 "last_logout"                 
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_LAST_LOGOUT
+*************
 
-BESCHREIBUNG:
-     Zeitpunkt des letzten Logouts. Anhand dieser Zeit werden die Feindes-
-     listen und in Abwesenheit eingefuegte Gegenstaende aktualisiert.
 
-     Dieses Datum wird bei Magiern nicht aktualisiert, wenn sie unsichtbar
-     sind/sich unsichtbar ausloggen.
+NAME
+====
 
-BEMERKUNGEN:
-     Gegen aeussere Aenderung und Set/QueryMethoden geschuetzt.
+   P_LAST_LOGOUT                 "last_logout"
 
-SIEHE AUCH:
-     P_LAST_LOGIN, P_INVIS, save_me, init, StopHuntFor
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Zeitpunkt des letzten Logouts. Anhand dieser Zeit werden die Feindes-
+   listen und in Abwesenheit eingefuegte Gegenstaende aktualisiert.
+
+   Dieses Datum wird bei Magiern nicht aktualisiert, wenn sie unsichtbar
+   sind/sich unsichtbar ausloggen.
+
+
+BEMERKUNGEN
+===========
+
+   Gegen aeussere Aenderung und Set/QueryMethoden geschuetzt.
+
+
+SIEHE AUCH
+==========
+
+   P_LAST_LOGIN, P_INVIS, save_me, init, StopHuntFor
 
 28. Jan 2013 Gloinson
diff --git a/doc/props/P_LAST_MOVE b/doc/props/P_LAST_MOVE
index 6b202a2..f6c974a 100644
--- a/doc/props/P_LAST_MOVE
+++ b/doc/props/P_LAST_MOVE
@@ -1,21 +1,36 @@
-NAME:
-	P_LAST_MOVE			"last_move"
 
-DEFINIERT IN:
-	/sys/thing/moving.h
+P_LAST_MOVE
+***********
 
-BESCHREIBUNG:
-	In dieser Property wird die Zeit der letzten Bewegung eines
-	Lebewesens festgehalten. Selbsterklaerend ist auch der dazugehoerige
-	Quellcode innerhalb move() in '/std/living/moving.c':
-	  SetProp(P_LAST_MOVE,time());
-	Wichtig ist diese Property insbesondere fuer die Unterbindung von
-	Rein-Angriff-Raus-Taktiken. Dieser Modus ist standardmaessig in jedem
-	NPC aktiviert und kann ueber die Property P_ENABLE_IN_ATTACK_OUT
-	ausgeschalten werden.
 
-SIEHE AUCH:
-	move(), time(), P_ENABLE_IN_ATTACK_OUT, /std/living/moving.c
+NAME
+====
 
------------------------------------------------------------------------------
+   P_LAST_MOVE                     "last_move"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property wird die Zeit der letzten Bewegung eines
+   Lebewesens festgehalten. Selbsterklaerend ist auch der dazugehoerige
+   Quellcode innerhalb move() in '/std/living/moving.c':
+     SetProp(P_LAST_MOVE,time());
+   Wichtig ist diese Property insbesondere fuer die Unterbindung von
+   Rein-Angriff-Raus-Taktiken. Dieser Modus ist standardmaessig in jedem
+   NPC aktiviert und kann ueber die Property P_ENABLE_IN_ATTACK_OUT
+   ausgeschalten werden.
+
+
+SIEHE AUCH
+==========
+
+   move(), time(), P_ENABLE_IN_ATTACK_OUT, /std/living/moving.c
+
 Last modified: Sat Jan 30 12:53:00 1999 by Patryn
diff --git a/doc/props/P_LAST_USE b/doc/props/P_LAST_USE
index 5ca875d..57519c9 100644
--- a/doc/props/P_LAST_USE
+++ b/doc/props/P_LAST_USE
@@ -1,20 +1,33 @@
+
 P_LAST_USE
+**********
 
-NAME:
-     P_LAST_USE "last_use"
 
-DEFINIERT IN:
-     <properties.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property wird in Ruestungen und Waffen dazu benutzt um
-     festzuhalten, wann die Ruestung/Waffe zuletzt im Kampf benutzt
-     wurde.
+   P_LAST_USE "last_use"
 
-SIEHE AUCH:
-     Ruestungen:	QueryDefend(L)
-     Waffen:		QueryDamage(L)
-     Sonstiges:		P_EQUIP_TIME, P_UNWIELD_TIME
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   <properties.h>
+
+
+BESCHREIBUNG
+============
+
+   Diese Property wird in Ruestungen und Waffen dazu benutzt um
+   festzuhalten, wann die Ruestung/Waffe zuletzt im Kampf benutzt
+   wurde.
+
+
+SIEHE AUCH
+==========
+
+   Ruestungen:        QueryDefend(L)
+   Waffen:            QueryDamage(L)
+   Sonstiges:         P_EQUIP_TIME, P_UNWIELD_TIME
+
 Last modified: Fri Feb 06 10:15:00 1998 by Paracelsus
diff --git a/doc/props/P_LAST_WEAR_ACTION b/doc/props/P_LAST_WEAR_ACTION
index 1a4d224..5531955 100644
--- a/doc/props/P_LAST_WEAR_ACTION
+++ b/doc/props/P_LAST_WEAR_ACTION
@@ -1,24 +1,31 @@
-PROPERTY:
 
-	P_LAST_WEAR_ACTION    "last_wear_action"
+P_LAST_WEAR_ACTION
+******************
 
-DEFINIERT IN: 
 
-	/sys/armour.h (und damit auch in properties.h)
+PROPERTY
+========
 
-BESCHREIBUNG:
+   P_LAST_WEAR_ACTION    "last_wear_action"
 
-	Diese Prop gibt an, welche An/Auszieh-Aktion ein Spieler zuletzt
-	durchgefuehrt hat. Sie ist ein zweielementiges Array, wobei der
-	erste Eintrag angibt, ob der Spieler sich an- oder ausgezogen
-	hat (WA_WEAR, WA_UNWEAR, auch in armour.h definiert) und der
-	zweite den Zeitpunkt.
+DEFINIERT IN:
 
-	Die Property wird (unter anderem?) dafuer verwendet festzustellen ob
-	der Spieler in der letzten Runde schon einen Ruestungswechsel
-	vorgenommen hat und einen entgegengesetzten zu unterbinden.
+   /sys/armour.h (und damit auch in properties.h)
 
-LETZTE AENDERUNG: 
+
+BESCHREIBUNG
+============
+
+   Diese Prop gibt an, welche An/Auszieh-Aktion ein Spieler zuletzt
+   durchgefuehrt hat. Sie ist ein zweielementiges Array, wobei der
+   erste Eintrag angibt, ob der Spieler sich an- oder ausgezogen
+   hat (WA_WEAR, WA_UNWEAR, auch in armour.h definiert) und der
+   zweite den Zeitpunkt.
+
+   Die Property wird (unter anderem?) dafuer verwendet festzustellen ob
+   der Spieler in der letzten Runde schon einen Ruestungswechsel
+   vorgenommen hat und einen entgegengesetzten zu unterbinden.
+
+LETZTE AENDERUNG:
 
 2003-01-29, 17:30 von Humni
-
diff --git a/doc/props/P_LAST_XP b/doc/props/P_LAST_XP
index e5ee055..c31a8b4 100644
--- a/doc/props/P_LAST_XP
+++ b/doc/props/P_LAST_XP
@@ -1,27 +1,43 @@
-NAME:
-    P_LAST_XP                        "last_xp"
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_LAST_XP
+*********
 
-BESCHREIBUNG:
-    Ein Array vom Typ ({ pfad, xp }).
 
-    Der Eintrag "pfad" gibt das Gebiet an, in dem ein Spieler zuletzt XP
-    bekommen hat. Dabei wird aus "/d/ebene/magier/room/raum1.c" dann
-    "/d/ebene/magier/room".
+NAME
+====
 
-    Der Wert "xp" zeigt an, wieviele XP der Spieler _in diesem Gebiet_
-    gesammelt hat. Sobald er auch nur einen XP in einem anderen Gebiet
-    bekommt, zeigt P_LAST_XP nur noch diesen neu erhaltenen XP an.
+   P_LAST_XP                        "last_xp"
 
-    Der Anwendungszweck waere z.B. eine Heilstelle, die nur dann Wirkung
-    zeigt, wenn der Spieler wirklich in dem betreffenden Gebiet gemetzelt hat
-    und nicht nur zum Tanken hergerannt ist oder eine Unterscheidung, ob
-    jemand metzelt oder nur uebt (ueber die XP).
 
-SIEHE AUCH:
-     Funktionen:  AddExp()
-     Verwandt:    P_NO_XP, P_XP
+DEFINIERT IN
+============
 
-14.Feb 2007 Gloinson
\ No newline at end of file
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Ein Array vom Typ ({ pfad, xp }).
+
+   Der Eintrag "pfad" gibt das Gebiet an, in dem ein Spieler zuletzt XP
+   bekommen hat. Dabei wird aus "/d/ebene/magier/room/raum1.c" dann
+   "/d/ebene/magier/room".
+
+   Der Wert "xp" zeigt an, wieviele XP der Spieler _in diesem Gebiet_
+   gesammelt hat. Sobald er auch nur einen XP in einem anderen Gebiet
+   bekommt, zeigt P_LAST_XP nur noch diesen neu erhaltenen XP an.
+
+   Der Anwendungszweck waere z.B. eine Heilstelle, die nur dann Wirkung
+   zeigt, wenn der Spieler wirklich in dem betreffenden Gebiet gemetzelt hat
+   und nicht nur zum Tanken hergerannt ist oder eine Unterscheidung, ob
+   jemand metzelt oder nur uebt (ueber die XP).
+
+
+SIEHE AUCH
+==========
+
+   Funktionen:  AddExp()
+   Verwandt:    P_NO_XP, P_XP
+
+14.Feb 2007 Gloinson
diff --git a/doc/props/P_LEAVECMDS b/doc/props/P_LEAVECMDS
index e31cf8a..5b0e03c 100644
--- a/doc/props/P_LEAVECMDS
+++ b/doc/props/P_LEAVECMDS
@@ -1,32 +1,56 @@
-NAME:
-    P_LEAVECMDS                   "leavecmds"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_LEAVECMDS
+***********
 
-BESCHREIBUNG:
-    Ein Array mit Befehlen, die zum Verlassen des Transporters fuehren. 
 
-BEISPIEL:
-    SetProp(P_LEAVECMDS,({ "verlass","verlasse" }) );
+NAME
+====
 
-    Gibt der Spieler nun 'verlasse xxx' ein, so sorgt /std/transport.c 
-    dafuer, das der Spieler auch von oder aus dem Transporter bewegt 
-    wird. Vorausgesetzt natuerlich, er ist an einem Haltepunkt angelangt.
+   P_LEAVECMDS                   "leavecmds"
 
-BEMERKUNGEN:
-    Um /std/transport.c nicht aufzublaehen, werden weitere Argumente wie
-    etwa 'verlasse das|die|den xxx' _nicht_ unterstuetzt!
 
-    Hier muss der verantwortliche Magier schon eine eigene Loesung finden
-    und in seinen Transporter schreiben.
+DEFINIERT IN
+============
 
-    Sollen Kommandos zum Betreten UND Verlassen eines Transporters ver-
-    wendet werden koennen, muessen diese in P_TRAVEL_CMDS gesetzt werden.
+   /sys/transport.h
 
-SIEHE AUCH:
-    P_LEAVEFAIL, P_ENTERFAIL, P_ENTERCMDS, P_TRAVEL_CMDS, transporter,
 
-LETZTE AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
-    
\ No newline at end of file
+BESCHREIBUNG
+============
+
+   Ein Array mit Befehlen, die zum Verlassen des Transporters fuehren.
+
+
+BEISPIEL
+========
+
+   SetProp(P_LEAVECMDS,({ "verlass","verlasse" }) );
+
+   Gibt der Spieler nun 'verlasse xxx' ein, so sorgt /std/transport.c
+   dafuer, das der Spieler auch von oder aus dem Transporter bewegt
+   wird. Vorausgesetzt natuerlich, er ist an einem Haltepunkt angelangt.
+
+
+BEMERKUNGEN
+===========
+
+   Um /std/transport.c nicht aufzublaehen, werden weitere Argumente wie
+   etwa 'verlasse das|die|den xxx' _nicht_ unterstuetzt!
+
+   Hier muss der verantwortliche Magier schon eine eigene Loesung finden
+   und in seinen Transporter schreiben.
+
+   Sollen Kommandos zum Betreten UND Verlassen eines Transporters ver-
+   wendet werden koennen, muessen diese in P_TRAVEL_CMDS gesetzt werden.
+
+
+SIEHE AUCH
+==========
+
+   P_LEAVEFAIL, P_ENTERFAIL, P_ENTERCMDS, P_TRAVEL_CMDS, transporter,
+
+
+LETZTE AENDERUNG
+================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_LEAVEFAIL b/doc/props/P_LEAVEFAIL
index a54b4a1..88e92ea 100644
--- a/doc/props/P_LEAVEFAIL
+++ b/doc/props/P_LEAVEFAIL
@@ -1,26 +1,48 @@
-NAME:
-    P_LEAVEFAIL                   "leavefail"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_LEAVEFAIL
+***********
 
-BESCHREIBUNG:
-     Meldung an den Spieler, wenn er ausserhalb der Anlegezeiten einen 
-     Transporter verlassen will. Ist die Propertie ein Array, so wird 
-     das erste Element als Meldung an den Spieler, das zweite als 
-     Meldung an die Mitspieler im Transporter geschickt. Ist der Eintrag
-     dagegen ein simpler String, so wird die Meldung nur an den Spieler
-     ausgegeben.
 
-BEISPIEL:
-     SetProp(P_LEAVEFAIL, "Die Wildgaense fliegen viel zu hoch" );
+NAME
+====
 
-     SetProp(P_LEAVEFAIL, ({ "Die Wildgaense fliegen viel zu hoch",
-                             "versucht, vom Ruecken der Wildgans zu "
-                            +"klettern und besinnt sich dann doch" }) );
-                             
-SIEHE AUCH:
-     P_LEAVEMSG, P_ENTERMSG, P_ENTERFAIL, transporter
+   P_LEAVEFAIL                   "leavefail"
 
-LETZTE AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
+
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Spieler, wenn er ausserhalb der Anlegezeiten einen
+   Transporter verlassen will. Ist die Propertie ein Array, so wird
+   das erste Element als Meldung an den Spieler, das zweite als
+   Meldung an die Mitspieler im Transporter geschickt. Ist der Eintrag
+   dagegen ein simpler String, so wird die Meldung nur an den Spieler
+   ausgegeben.
+
+
+BEISPIEL
+========
+
+   SetProp(P_LEAVEFAIL, "Die Wildgaense fliegen viel zu hoch" );
+
+   SetProp(P_LEAVEFAIL, ({ "Die Wildgaense fliegen viel zu hoch",
+                           "versucht, vom Ruecken der Wildgans zu "
+                          +"klettern und besinnt sich dann doch" }) );
+
+
+SIEHE AUCH
+==========
+
+   P_LEAVEMSG, P_ENTERMSG, P_ENTERFAIL, transporter
+
+
+LETZTE AENDERUNG
+================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_LEAVEMSG b/doc/props/P_LEAVEMSG
index 592bbc4..a3a1baf 100644
--- a/doc/props/P_LEAVEMSG
+++ b/doc/props/P_LEAVEMSG
@@ -1,19 +1,38 @@
-NAME:
-    P_LEAVEMSG                    "leavemsg"                    
 
-DEFINIERT IN:
-    /sys/transport.h
+P_LEAVEMSG
+**********
 
-BESCHREIBUNG:
-     Array mit zwei Meldungen. Der erste Eintrag wird an den Transporter
-     ausgegeben, der zweite an den Raum in den der Spieler kommt.
 
-BEISPIEL:
-     SetProp(P_LEAVEMSG, ({ "klettert vom Ruecken der Wildgans",
-                            "kommt vom Ruecken einer Wildgans herunter" }) );
+NAME
+====
 
-SIEHE AUCH: 
-     P_ENTERMSG, P_LEAVEFAIL, P_ENTERFAIL, transporter
+   P_LEAVEMSG                    "leavemsg"
 
-LETZTE AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
+
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Array mit zwei Meldungen. Der erste Eintrag wird an den Transporter
+   ausgegeben, der zweite an den Raum in den der Spieler kommt.
+
+
+BEISPIEL
+========
+
+   SetProp(P_LEAVEMSG, ({ "klettert vom Ruecken der Wildgans",
+                          "kommt vom Ruecken einer Wildgans herunter" }) );
+
+SIEHE AUCH:
+   P_ENTERMSG, P_LEAVEFAIL, P_ENTERFAIL, transporter
+
+
+LETZTE AENDERUNG
+================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_LEP b/doc/props/P_LEP
index 7628b1c..dbcea68 100644
--- a/doc/props/P_LEP
+++ b/doc/props/P_LEP
@@ -1,9 +1,22 @@
-NAME:
-    P_LEP                         "lep"                         
 
-DEFINIERT IN:
-    /sys/player.h
+P_LEP
+*****
 
-BESCHREIBUNG:
-     Levelpunkte eines Spielers
-     NICHT VON HAND SETZEN!!!
+
+NAME
+====
+
+   P_LEP                         "lep"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Levelpunkte eines Spielers
+   NICHT VON HAND SETZEN!!!
diff --git a/doc/props/P_LEVEL b/doc/props/P_LEVEL
index 40be5d0..a4b804c 100644
--- a/doc/props/P_LEVEL
+++ b/doc/props/P_LEVEL
@@ -1,33 +1,48 @@
-NAME:
-    P_LEVEL                       "level"                       
 
-DEFINIERT IN:
-    /sys/living/description.h
+P_LEVEL
+*******
 
-BESCHREIBUNG:
 
-     Spieler-Level (!= Magierlevel)
+NAME
+====
 
-     In Krankheits- (CL_DISEASE) und Giftobjekten (CL_POISON) drueckt 
-     P_LEVEL aus, wie schwer die Krankheit/das Gift ist. Je nachdem, wie 
-     hoch oder niedrig der Level gesetzt wird, muss z.B. ein Kleriker mehr 
-     oder weniger oft kurieren, um  eine (ggf. stufenweise) Heilung zu 
-     bewirken.
+   P_LEVEL                       "level"
 
-     In Fluchobjekten (CL_CURSE) gibt P_LEVEL ebenfalls die Schwere des
-     Fluches an, jedoch ist hier zu beachten, dass z.B. Kleriker aktuell
-     keine stufenweise Schwaechung bewirken koennen, sondern entweder den
-     Fluch entfernen koennen oder komplett scheitern. 
-     Der Fluchlevel ist hier grob als Chance des Scheiterns in einem 
-     Wertebereich von 1-100 zu sehen, was bedeutet, dass ein Fluchlevel 
-     von 100 als permanenter, nicht entfernbarer Fluch anzusehen ist.
 
-     Genaueres ist in der Klerusgilde nachzulesen oder beim GM Klerus zu
-     erfragen.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     Properties:  P_GUILD_LEVEL
-     Allgemeines: /doc/wiz/gift, /doc/help/gift
-     Funktionen:  AddClass(L), is_class_member(L)
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+   Spieler-Level (!= Magierlevel)
+
+   In Krankheits- (CL_DISEASE) und Giftobjekten (CL_POISON) drueckt
+   P_LEVEL aus, wie schwer die Krankheit/das Gift ist. Je nachdem, wie
+   hoch oder niedrig der Level gesetzt wird, muss z.B. ein Kleriker mehr
+   oder weniger oft kurieren, um  eine (ggf. stufenweise) Heilung zu
+   bewirken.
+
+   In Fluchobjekten (CL_CURSE) gibt P_LEVEL ebenfalls die Schwere des
+   Fluches an, jedoch ist hier zu beachten, dass z.B. Kleriker aktuell
+   keine stufenweise Schwaechung bewirken koennen, sondern entweder den
+   Fluch entfernen koennen oder komplett scheitern.
+   Der Fluchlevel ist hier grob als Chance des Scheiterns in einem
+   Wertebereich von 1-100 zu sehen, was bedeutet, dass ein Fluchlevel
+   von 100 als permanenter, nicht entfernbarer Fluch anzusehen ist.
+
+   Genaueres ist in der Klerusgilde nachzulesen oder beim GM Klerus zu
+   erfragen.
+
+
+SIEHE AUCH
+==========
+
+   Properties:  P_GUILD_LEVEL
+   Allgemeines: /doc/wiz/gift, /doc/help/gift
+   Funktionen:  AddClass(L), is_class_member(L)
 
 Letzte Aenderung: 2015-Feb-02, Arathorn.
diff --git a/doc/props/P_LIFETIME b/doc/props/P_LIFETIME
index 250c287..4c76f14 100644
--- a/doc/props/P_LIFETIME
+++ b/doc/props/P_LIFETIME
@@ -1,30 +1,51 @@
-NAME:
-     P_LIFETIME                    "std_food_lifetime"
-
-DEFINIERT IN:
-     /sys/food.h
-
-BESCHREIBUNG:
-     Zeit in Sekunden, die die Speise haltbar ist.
-     Mit Setzen dieser Property wird der Wert fuer P_RESET_LIFETIME und
-     dort gespeichert.
-     Nach dieser Zeit wird diese Speise schlecht und je nach Konfiguration
-     der Speise eventuell zerstoert. Sichergestellt wird dies durch den
-     Aufruf von reset() nach dieser Anzahl Sekunden.
-     Moechte man eine Speise haben, die niemals verdirbt
-     (genehmigungspflichtig!), nutzt man die Property P_NO_BAD
-     
-BEMERKUNGEN:
-     Sobald der Countdown zum Schlechtwerden der Speise laeuft, also ein
-     Spieler damit in Beruehrung kam, zeigt SetProp auf diese Property keine
-     Wirkung mehr.
-
-DEFAULT:
-     Ohne Setzen von P_LIFETIME ,P_RESET_LIFETIME und P_NO_BAD verdirbt die
-     Speise nach einem Reset, also zwischen 30 und 60 Minuten
-
-SIEHE AUCH:
-     wiz/food, P_RESET_LIFETIME, P_NO_BAD
-
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+
+P_LIFETIME
+**********
+
+
+NAME
+====
+
+   P_LIFETIME                    "std_food_lifetime"
+
+
+DEFINIERT IN
+============
+
+   /sys/food.h
+
+
+BESCHREIBUNG
+============
+
+   Zeit in Sekunden, die die Speise haltbar ist.
+   Mit Setzen dieser Property wird der Wert fuer P_RESET_LIFETIME und
+   dort gespeichert.
+   Nach dieser Zeit wird diese Speise schlecht und je nach Konfiguration
+   der Speise eventuell zerstoert. Sichergestellt wird dies durch den
+   Aufruf von reset() nach dieser Anzahl Sekunden.
+   Moechte man eine Speise haben, die niemals verdirbt
+   (genehmigungspflichtig!), nutzt man die Property P_NO_BAD
+
+
+BEMERKUNGEN
+===========
+
+   Sobald der Countdown zum Schlechtwerden der Speise laeuft, also ein
+   Spieler damit in Beruehrung kam, zeigt SetProp auf diese Property keine
+   Wirkung mehr.
+
+
+DEFAULT
+=======
+
+   Ohne Setzen von P_LIFETIME ,P_RESET_LIFETIME und P_NO_BAD verdirbt die
+   Speise nach einem Reset, also zwischen 30 und 60 Minuten
+
+
+SIEHE AUCH
+==========
+
+   wiz/food, P_RESET_LIFETIME, P_NO_BAD
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_LIGHT b/doc/props/P_LIGHT
index 251e927..d0b55d8 100644
--- a/doc/props/P_LIGHT
+++ b/doc/props/P_LIGHT
@@ -1,62 +1,81 @@
-NAME:
-    P_LIGHT                       "light"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_LIGHT
+*******
 
-BESCHREIBUNG:
-    Gibt den Lichtlevel eines Objektes an, d.h. wie hell das Objekt von sich
-    aus leuchtet. Moechte man den gesamten Lichtlevel haben der von einem
-    Objekt ausgeht, so sollte man P_TOTAL_LIGHT nehmen, das den Inhalt eines
-    Containers direkt mit verrechnet.
 
-    Bitte _nur_ ueber SetProp bzw. QueryProp zugreifen, da es fuer die
-    Berechnung wichtig ist, das in allen Containern P_LAST_CONTENT_CHANGE
-    gesetzt wird um ein neuberechnen des Lichtlevels auszuloesen!
+NAME
+====
 
-ANMERKUNG:
-    Um ein ungefaehres Gefuehl davon zu bekommen was ein Lichtlevel in
-    etwa bedeutet hier einige allgemeine Beispiele von Gegenstaenden.
-    Grundsaetzlich sollten Lichtlevel <0 und >2 nur in Ruecksprache mit dem
-    Balanceteam benutzt werden.
+   P_LIGHT                       "light"
 
-    Lichtlevel -1,  z.B. ein schwarzer Ring, von dem eine kleine dunkle Aura
-                    ausgeht, die den Spieler umgibt.
-    Lichtlevel  0,  der Gegenstand beeinflusst das Licht ueberhaupt nicht
-    Lichtlevel  1,  der Spieler haelt eine kleine Lichtquelle in Haenden,
-                    dieses kann ein Leuchtpfirsich, eine Fackel oder ein
-                    Feuerschwert oder aehnliches sein.
-    Lichtlevel  2,  eine etwas groessere Lichtquelle, die aber immer noch
-                    nicht den Raum beleuchtet sondern lediglich dem Spieler
-                    einen Lichtschein gewaehrt mit dem er sehen kann.
-    Lichtlevel >2,  extrem helle Lichtquellen, die den gesamten Raum
-                    ausleuchten, in der Regel wohl eher magischer Natur.
-                    Solche Lichtquellen sollten sich mit der Zeit
-                    verbrauchen, dem Spieler Schaden zufuegen oder
-                    aehnliches, damit die Spieler nicht defaultmaessig mit
-                    einer solchen Lichtquelle durchs MG ziehn.
 
-    Daraus ergeben sich dann folgende Konsequenzen fuer Raeume:
-    Lichtlevel  >1: Der Raum ist sehr hell erleuchtet und kann von Spielern
-                    nicht oder nur sehr schwer abgedunkelt werden. Ein Wert
-                    von 2-3 kann interessant sein, wenn die NPCs im Raum
-                    ueber keine Nachtsicht verfuegen. Ueber ein Abdunkeln des
-                    Raumes kann der Spieler dann doch den Nachtkampf nutzen.
-    Lichtlevel   1: Der Raum ist erleuchtet und die Spieler koennen ohne
-                    weitere Lichtquellen sehen...
-    Lichtlevel   0: Ein dunkler Raum in dem man mit jeder Fackel sehen kann.
-    Lichtlevel  -1: man benoetigt zwei einfache Lichtquellen oder Nachtsicht
-                    um in diesem Raum etwas sehen zu koennen.
-    Lichtlevel  -2: Man benoetigt schon eine besondere Lichtquelle um in
-                    diesem Raum noch etwas sehen zu koennen. Solche
-                    Lichtquellen sind nichts fuer Anfaenger oder mittlere
-                    Spieler da sie schwer zu beschaffen und in der Regel
-                    auch einige Handicaps haben.
-    Lichtlevel <-2: Der Raum ist wirklich absolut stockduster und
-                    Lichtquellen die solch einen Raum ausleuchten koennen,
-                    sind ausserordentlich selten und haben immer ihre
-                    Tuecken. Diese Lichtlevel sollten nur mit Vorsicht
-                    genossen werden.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt den Lichtlevel eines Objektes an, d.h. wie hell das Objekt von sich
+   aus leuchtet. Moechte man den gesamten Lichtlevel haben der von einem
+   Objekt ausgeht, so sollte man P_TOTAL_LIGHT nehmen, das den Inhalt eines
+   Containers direkt mit verrechnet.
+
+   Bitte _nur_ ueber SetProp bzw. QueryProp zugreifen, da es fuer die
+   Berechnung wichtig ist, das in allen Containern P_LAST_CONTENT_CHANGE
+   gesetzt wird um ein neuberechnen des Lichtlevels auszuloesen!
+
+
+ANMERKUNG
+=========
+
+   Um ein ungefaehres Gefuehl davon zu bekommen was ein Lichtlevel in
+   etwa bedeutet hier einige allgemeine Beispiele von Gegenstaenden.
+   Grundsaetzlich sollten Lichtlevel <0 und >2 nur in Ruecksprache mit dem
+   Balanceteam benutzt werden.
+
+   Lichtlevel -1,  z.B. ein schwarzer Ring, von dem eine kleine dunkle Aura
+                   ausgeht, die den Spieler umgibt.
+   Lichtlevel  0,  der Gegenstand beeinflusst das Licht ueberhaupt nicht
+   Lichtlevel  1,  der Spieler haelt eine kleine Lichtquelle in Haenden,
+                   dieses kann ein Leuchtpfirsich, eine Fackel oder ein
+                   Feuerschwert oder aehnliches sein.
+   Lichtlevel  2,  eine etwas groessere Lichtquelle, die aber immer noch
+                   nicht den Raum beleuchtet sondern lediglich dem Spieler
+                   einen Lichtschein gewaehrt mit dem er sehen kann.
+   Lichtlevel >2,  extrem helle Lichtquellen, die den gesamten Raum
+                   ausleuchten, in der Regel wohl eher magischer Natur.
+                   Solche Lichtquellen sollten sich mit der Zeit
+                   verbrauchen, dem Spieler Schaden zufuegen oder
+                   aehnliches, damit die Spieler nicht defaultmaessig mit
+                   einer solchen Lichtquelle durchs MG ziehn.
+
+   Daraus ergeben sich dann folgende Konsequenzen fuer Raeume:
+   Lichtlevel  >1: Der Raum ist sehr hell erleuchtet und kann von Spielern
+                   nicht oder nur sehr schwer abgedunkelt werden. Ein Wert
+                   von 2-3 kann interessant sein, wenn die NPCs im Raum
+                   ueber keine Nachtsicht verfuegen. Ueber ein Abdunkeln des
+                   Raumes kann der Spieler dann doch den Nachtkampf nutzen.
+   Lichtlevel   1: Der Raum ist erleuchtet und die Spieler koennen ohne
+                   weitere Lichtquellen sehen...
+   Lichtlevel   0: Ein dunkler Raum in dem man mit jeder Fackel sehen kann.
+   Lichtlevel  -1: man benoetigt zwei einfache Lichtquellen oder Nachtsicht
+                   um in diesem Raum etwas sehen zu koennen.
+   Lichtlevel  -2: Man benoetigt schon eine besondere Lichtquelle um in
+                   diesem Raum noch etwas sehen zu koennen. Solche
+                   Lichtquellen sind nichts fuer Anfaenger oder mittlere
+                   Spieler da sie schwer zu beschaffen und in der Regel
+                   auch einige Handicaps haben.
+   Lichtlevel <-2: Der Raum ist wirklich absolut stockduster und
+                   Lichtquellen die solch einen Raum ausleuchten koennen,
+                   sind ausserordentlich selten und haben immer ihre
+                   Tuecken. Diese Lichtlevel sollten nur mit Vorsicht
+                   genossen werden.
+
+
+SIEHE AUCH
+==========
+
+   P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
diff --git a/doc/props/P_LIGHTDESC b/doc/props/P_LIGHTDESC
index 5898db8..e8c52d1 100644
--- a/doc/props/P_LIGHTDESC
+++ b/doc/props/P_LIGHTDESC
@@ -1,34 +1,56 @@
-NAME:
-    P_LIGHTDESC                   "lightdesc"                   
 
-DEFINIERT IN:
-    /sys/properties.h
+P_LIGHTDESC
+***********
 
-BESCHREIBUNG:
-    String oder Array von Strings mit Adjektiven, die das Leuchten der 
-    Lichtquelle beschreiben (z.B. leuchtend, brennend, gluehend).
-    Standardmaessig ist die Property auf "brennend" gesetzt.
 
-    Wenn ein Array angegeben wird, werden die Beschreibungen passend auf
-    die Benndauer aufgeteilt und das zur aktuell noch vorhandenen Rest-
-    Brenndauer passende Adjektiv ausgegeben. Das Array wird dabei rueck-
-    aerts durchlaufen, d.h. fuer eine frisch entzuendete Lichtquelle wird
-    der letzte Eintrag des Arrays verwendet (s. Beispiele).
+NAME
+====
 
-BEISPIELE:
-    Eine einfache Oellampe:
+   P_LIGHTDESC                   "lightdesc"
 
-    SetProp(P_LIGHTDESC, "angezuendet");
 
-    Eine Fackel mit mehreren Brennstadien (aus /items/fackel.c):
+DEFINIERT IN
+============
 
-    SetProp(P_LIGHTDESC, ({"glimmend","flackernd","leicht flackernd",
-                         "brennend","hell lodernd","frisch angezuendet"}));
+   /sys/properties.h
 
-SIEHE AUCH:
-    Basisklassen: /std/lightsource.c
-    Properties:   P_FUEL, P_DO_DESTRUCT, P_LIGHT
-    Methoden:     AddFuel(L)
 
-LETZTE AENDERUNG:
-    22. Dez. 2015, Arathorn
+BESCHREIBUNG
+============
+
+   String oder Array von Strings mit Adjektiven, die das Leuchten der
+   Lichtquelle beschreiben (z.B. leuchtend, brennend, gluehend).
+   Standardmaessig ist die Property auf "brennend" gesetzt.
+
+   Wenn ein Array angegeben wird, werden die Beschreibungen passend auf
+   die Benndauer aufgeteilt und das zur aktuell noch vorhandenen Rest-
+   Brenndauer passende Adjektiv ausgegeben. Das Array wird dabei rueck-
+   aerts durchlaufen, d.h. fuer eine frisch entzuendete Lichtquelle wird
+   der letzte Eintrag des Arrays verwendet (s. Beispiele).
+
+
+BEISPIELE
+=========
+
+   Eine einfache Oellampe:
+
+   SetProp(P_LIGHTDESC, "angezuendet");
+
+   Eine Fackel mit mehreren Brennstadien (aus /items/fackel.c):
+
+   SetProp(P_LIGHTDESC, ({"glimmend","flackernd","leicht flackernd",
+                        "brennend","hell lodernd","frisch angezuendet"}));
+
+
+SIEHE AUCH
+==========
+
+   Basisklassen: /std/lightsource.c
+   Properties:   P_FUEL, P_DO_DESTRUCT, P_LIGHT
+   Methoden:     AddFuel(L)
+
+
+LETZTE AENDERUNG
+================
+
+   22. Dez. 2015, Arathorn
diff --git a/doc/props/P_LIGHTED b/doc/props/P_LIGHTED
index 9029b02..31d7709 100644
--- a/doc/props/P_LIGHTED
+++ b/doc/props/P_LIGHTED
@@ -1,8 +1,21 @@
-NAME:
-    P_LIGHTED                     "lighted"                     
 
-DEFINIERT IN:
-    /sys/properties.h
+P_LIGHTED
+*********
 
-BESCHREIBUNG:
-     Flag, ob die Lichtquelle in Betrieb ist.
+
+NAME
+====
+
+   P_LIGHTED                     "lighted"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Flag, ob die Lichtquelle in Betrieb ist.
diff --git a/doc/props/P_LIGHT_ABSORPTION b/doc/props/P_LIGHT_ABSORPTION
index 213120f..4443a98 100644
--- a/doc/props/P_LIGHT_ABSORPTION
+++ b/doc/props/P_LIGHT_ABSORPTION
@@ -1,15 +1,31 @@
-NAME:
-    P_LIGHT_ABSORPTION                  "light_absorption"
 
-DEFINIERT IN:
-    /sys/room/description.h
+P_LIGHT_ABSORPTION
+******************
 
-BESCHREIBUNG:
-    In Raeumen verteilt sich aufgrund ihrer Groesse das Licht und gerade in
-    groesseren Raeumen kann eine kleine Fackel unter Umstaenden nicht mehr
-    ausreichen den gesamten Raum auszuleuchten. In diesem Fall kann man
-    ueber diese Property das Verhalten des Lichts steuern.
-    Ein "normaler" durchschnittlicher Raum hat hier den Defaultwert 1.
 
-SIEHE AUCH:
-    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+NAME
+====
+
+   P_LIGHT_ABSORPTION                  "light_absorption"
+
+
+DEFINIERT IN
+============
+
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   In Raeumen verteilt sich aufgrund ihrer Groesse das Licht und gerade in
+   groesseren Raeumen kann eine kleine Fackel unter Umstaenden nicht mehr
+   ausreichen den gesamten Raum auszuleuchten. In diesem Fall kann man
+   ueber diese Property das Verhalten des Lichts steuern.
+   Ein "normaler" durchschnittlicher Raum hat hier den Defaultwert 1.
+
+
+SIEHE AUCH
+==========
+
+   P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
diff --git a/doc/props/P_LIGHT_MODIFIER b/doc/props/P_LIGHT_MODIFIER
index 2409c79..c7741ee 100644
--- a/doc/props/P_LIGHT_MODIFIER
+++ b/doc/props/P_LIGHT_MODIFIER
@@ -1,49 +1,75 @@
-NAME:
-    P_LIGHT_MODIFIER                     "light_modifier"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_LIGHT_MODIFIER
+****************
 
-BESCHREIBUNG:
-    Veraendert das Lichtlevel das von einem Lebewesen wahrgenommen wird.
-    Der Wert dieser Property wird additiv in P_PLAYER_LIGHT beruecksichtigt.
-    Es ist hiermit z.B. moeglich eine Sonnenbrille zu programmieren, diese
-    veraendert ja nicht das tatsaechliche Lichtlevel, sondern verdunkelt nur
-    die Sicht.
 
-ANMERKUNG:
-    Damit NPCs in der Lage sind solche Gegenstaende richtig einzuschaetzen,
-    sollte diese Property in jedem Gegenstand der einen Light-Modifier setzt,
-    auch gesetzt sein. Das veraendern dieser Property in Spielern durch NPCs
-    oder Gegenstaende ist selbstverstaendlich genehmigungspflichtig.
+NAME
+====
 
-BEISPIELE:
-       // Ein NPC der auch in relativ dunklen Raeumen mit Lichtlevel -2
-       // noch sehen kann...
-       create_default_npc(10);
-       SetProp(P_LIGHT_MODIFIER, 3);
+   P_LIGHT_MODIFIER                     "light_modifier"
 
-       // Eine Sonnenbrille, die das Lichtlevel um eins senkt.
 
-       create()
-       {
-          :
-          SetProp(P_ARMOUR_TYPE, AT_GLASSES);
-          SetProp(P_LIGHT_MODIFIER, -1);
-          :
-       }
+DEFINIERT IN
+============
 
-       // Achtung: Falls pl Query- oder Set-Methoden auf P_LIGHT_MODIFIER hat,
-       // wird diese Methode hier furchtbar schief gehen und im besten Fall
-       // nichts veraendern. In realen Objekten empfiehlt sich zumindest eine
-       // Pruefung im Vorfeld, ob eine Query-/Set-Methode gesetzt ist.
-       protected void InformWear(object pl, int silent, int all) {
-           pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) -1);
-       }
+   /sys/properties.h
 
-       protected void InformUnwear(object pl, int silent, int all) {
-           pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) +1);
-       }
 
-SIEHE AUCH:
-    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+BESCHREIBUNG
+============
+
+   Veraendert das Lichtlevel das von einem Lebewesen wahrgenommen wird.
+   Der Wert dieser Property wird additiv in P_PLAYER_LIGHT beruecksichtigt.
+   Es ist hiermit z.B. moeglich eine Sonnenbrille zu programmieren, diese
+   veraendert ja nicht das tatsaechliche Lichtlevel, sondern verdunkelt nur
+   die Sicht.
+
+
+ANMERKUNG
+=========
+
+   Damit NPCs in der Lage sind solche Gegenstaende richtig einzuschaetzen,
+   sollte diese Property in jedem Gegenstand der einen Light-Modifier setzt,
+   auch gesetzt sein. Das veraendern dieser Property in Spielern durch NPCs
+   oder Gegenstaende ist selbstverstaendlich genehmigungspflichtig.
+
+
+BEISPIELE
+=========
+
+   // Ein NPC der auch in relativ dunklen Raeumen mit Lichtlevel -2
+   // noch sehen kann...
+   create_default_npc(10);
+   SetProp(P_LIGHT_MODIFIER, 3);
+
+   // Eine Sonnenbrille, die das Lichtlevel um eins senkt.
+
+   create()
+   {
+
+      :
+
+      SetProp(P_ARMOUR_TYPE, AT_GLASSES);
+      SetProp(P_LIGHT_MODIFIER, -1);
+
+      :
+
+   }
+
+   // Achtung: Falls pl Query- oder Set-Methoden auf P_LIGHT_MODIFIER hat,
+   // wird diese Methode hier furchtbar schief gehen und im besten Fall
+   // nichts veraendern. In realen Objekten empfiehlt sich zumindest eine
+   // Pruefung im Vorfeld, ob eine Query-/Set-Methode gesetzt ist.
+   protected void InformWear(object pl, int silent, int all) {
+       pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) -1);
+   }
+
+   protected void InformUnwear(object pl, int silent, int all) {
+       pl->SetProp(P_LIGHT_MODIFIER, pl->QueryProp(P_LIGHT_MODIFIER) +1);
+   }
+
+
+SIEHE AUCH
+==========
+
+   P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
diff --git a/doc/props/P_LIGHT_TRANSPARENCY b/doc/props/P_LIGHT_TRANSPARENCY
index 4af4415..42d0d13 100644
--- a/doc/props/P_LIGHT_TRANSPARENCY
+++ b/doc/props/P_LIGHT_TRANSPARENCY
@@ -1,14 +1,30 @@
-NAME:
-    P_LIGHT_TRANSPARENCY             "light_transparency"
 
-DEFINIERT IN:
-    /sys/container.h
+P_LIGHT_TRANSPARENCY
+********************
 
-BESCHREIBUNG:
-    Wieviel Licht schluckt ein Container, d.h. wieviel Licht dringt aus
-    einem Behaelter noch nach draussen. Bei Containern die _nicht_
-    transparent sind, liefert eine _query_method hier immer 999 zurueck.
-    Defaultmaessig steht diese Property auf 2.
 
-SIEHE AUCH:
-    P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+NAME
+====
+
+   P_LIGHT_TRANSPARENCY             "light_transparency"
+
+
+DEFINIERT IN
+============
+
+   /sys/container.h
+
+
+BESCHREIBUNG
+============
+
+   Wieviel Licht schluckt ein Container, d.h. wieviel Licht dringt aus
+   einem Behaelter noch nach draussen. Bei Containern die _nicht_
+   transparent sind, liefert eine _query_method hier immer 999 zurueck.
+   Defaultmaessig steht diese Property auf 2.
+
+
+SIEHE AUCH
+==========
+
+   P_TOTAL_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
diff --git a/doc/props/P_LIGHT_TYPE b/doc/props/P_LIGHT_TYPE
index 07322e0..47abbf4 100644
--- a/doc/props/P_LIGHT_TYPE
+++ b/doc/props/P_LIGHT_TYPE
@@ -1,75 +1,106 @@
-NAME:
-    P_LIGHT_TYPE                       "light_type"
 
-DEFINIERT IN:
-    /sys/thing/description.h
-
-BESCHREIBUNG:
-    Gibt an, was fuer ein Licht in einem Objekt vorherrscht. 
-    
-    Es sind verschiedene 'atomare' Lichttypen, vordefiniert:
-    LT_MISC         Unbestimmt, keine Angaben.
-
-    LT_SUN          Sonnenlicht.
-    LT_MOON         Mondlicht 
-    LT_STARS        Sternenlicht.
-    
-    LT_DIFFUSE      Indirektes Tageslicht. (z.B. im Wald)
-
-    LT_CANDLE       Kerzenlicht.
-    LT_TORCH        Fackelschein.
-    LT_OPEN_FIRE    Sonstiges offenes Feuer. (Lagerfeuer etc.)
-    
-    LT_MAGIC        Irgendeine magische Lichtquelle.
-
-    LT_GLOWING      Eine selbstleuchtende Lichtquelle.
-
-    LT_DARKNESS     Kein wirkliches Licht, aber auch Dunkelheit soll
-                    explizit gesetzt werden koennen.
-
-    In einem Objekt koennen mehrere Lichttypen gesetzt werden. Dies
-    geschieht durch logische Oder-Verknuepfungen, siehe man operators.
-
-    Wenn in einem Raum mehr als ein Lichttyp gesetzt ist, bedeutet das, 
-    normalerweise, dass mehrere Lichtquellen verschiedenen Typs im Raum 
-    sind.
-
-    Es gibt zudem noch Lichttypen, die zusammengesetzt sind:
-
-    LT_DAYLIGHT    Tageslicht (Sonne/Diffuse)
-    LT_NATURAL     Natuerliches Licht (Daylight/Sterne/Mond)
-    LT_ARTIFICIAL  Kuenstliches Licht (Magie/Feuer/Gluehen)
-    LT_FIRE        Feuer (Kerzen/Fackeln/offenes Feuer)
-
-BEISPIELE:
-    Ein Objekt soll ein geheimnisvolles Gluehen von sich geben:
-    
-    objekt->SetProp( P_LIGHT_TYPE, LT_GLOWING )
-
-    Soll ein Raum beschrieben werden, der durch Sternenlicht erhellt ist,
-    in dem aber zusaetzlich noch ein Lagerfeuer brennt, sieht die Syntax
-    folgendermassen aus:
-    
-    raum->SetProp( P_LIGHT_TYPE, LT_STARS|LT_OPEN_FIRE );
-
-    Einer brennenden Hose kann der Lichttyp fuer offenes Feuer mitgegeben 
-    werden. Es muss jedoch nicht zwingend der Lichttyp fuer magische
-    Lichtquellen benutzt werden. Es ist klar, dass es irgendwas mit Magie
-    zu tun hat, wenn brennende Spieler durch die Gegend laufen, ohne zu 
-    schreien. P_LIGHT_TYPE sollte jedoch das fassbare Licht beschreiben.
-    LT_MAGIC ist also eher eine Notloesung fuer Licht, dessen Ursache man
-    nicht erklaeren kann.
+P_LIGHT_TYPE
+************
 
 
-ANMERKUNG:
-    P_LIGHT_TYPE dient ausschliesslich der Beschreibung des Lichtes, das 
-    vorherrscht. Es ist nicht verbunden mit dem Lichtsystem, und soll es
-    auch nicht werden.
+NAME
+====
 
-    Die Empfindlichkeit der Dunkelelfen gegen Sonnenlicht wird ueber diese
-    Property gesteuert. Soll ein Raum mit (P_INDOORS==0) so dunkel sein, dass
-    sie nicht in Gefahr sind, sollten nicht LT_MISC oder LT_SUN gesetzt
-    sein.
+   P_LIGHT_TYPE                       "light_type"
 
-SIEHE AUCH:
-    CheckLightType, /std/thing/description.h, operators
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt an, was fuer ein Licht in einem Objekt vorherrscht.
+
+
+
+   Es sind verschiedene 'atomare' Lichttypen, vordefiniert:
+   LT_MISC         Unbestimmt, keine Angaben.
+
+   LT_SUN          Sonnenlicht.
+   LT_MOON         Mondlicht
+   LT_STARS        Sternenlicht.
+
+
+
+   LT_DIFFUSE      Indirektes Tageslicht. (z.B. im Wald)
+
+   LT_CANDLE       Kerzenlicht.
+   LT_TORCH        Fackelschein.
+   LT_OPEN_FIRE    Sonstiges offenes Feuer. (Lagerfeuer etc.)
+
+
+
+   LT_MAGIC        Irgendeine magische Lichtquelle.
+
+   LT_GLOWING      Eine selbstleuchtende Lichtquelle.
+
+   LT_DARKNESS     Kein wirkliches Licht, aber auch Dunkelheit soll
+                   explizit gesetzt werden koennen.
+
+   In einem Objekt koennen mehrere Lichttypen gesetzt werden. Dies
+   geschieht durch logische Oder-Verknuepfungen, siehe man operators.
+
+   Wenn in einem Raum mehr als ein Lichttyp gesetzt ist, bedeutet das,
+   normalerweise, dass mehrere Lichtquellen verschiedenen Typs im Raum
+   sind.
+
+   Es gibt zudem noch Lichttypen, die zusammengesetzt sind:
+
+   LT_DAYLIGHT    Tageslicht (Sonne/Diffuse)
+   LT_NATURAL     Natuerliches Licht (Daylight/Sterne/Mond)
+   LT_ARTIFICIAL  Kuenstliches Licht (Magie/Feuer/Gluehen)
+   LT_FIRE        Feuer (Kerzen/Fackeln/offenes Feuer)
+
+
+BEISPIELE
+=========
+
+   Ein Objekt soll ein geheimnisvolles Gluehen von sich geben:
+
+
+
+   objekt->SetProp( P_LIGHT_TYPE, LT_GLOWING )
+
+   Soll ein Raum beschrieben werden, der durch Sternenlicht erhellt ist,
+   in dem aber zusaetzlich noch ein Lagerfeuer brennt, sieht die Syntax
+   folgendermassen aus:
+
+
+
+   raum->SetProp( P_LIGHT_TYPE, LT_STARS|LT_OPEN_FIRE );
+
+   Einer brennenden Hose kann der Lichttyp fuer offenes Feuer mitgegeben
+   werden. Es muss jedoch nicht zwingend der Lichttyp fuer magische
+   Lichtquellen benutzt werden. Es ist klar, dass es irgendwas mit Magie
+   zu tun hat, wenn brennende Spieler durch die Gegend laufen, ohne zu
+   schreien. P_LIGHT_TYPE sollte jedoch das fassbare Licht beschreiben.
+   LT_MAGIC ist also eher eine Notloesung fuer Licht, dessen Ursache man
+   nicht erklaeren kann.
+
+
+ANMERKUNG
+=========
+
+   P_LIGHT_TYPE dient ausschliesslich der Beschreibung des Lichtes, das
+   vorherrscht. Es ist nicht verbunden mit dem Lichtsystem, und soll es
+   auch nicht werden.
+
+   Die Empfindlichkeit der Dunkelelfen gegen Sonnenlicht wird ueber diese
+   Property gesteuert. Soll ein Raum mit (P_INDOORS==0) so dunkel sein, dass
+   sie nicht in Gefahr sind, sollten nicht LT_MISC oder LT_SUN gesetzt
+   sein.
+
+
+SIEHE AUCH
+==========
+
+   CheckLightType, /std/thing/description.h, operators
diff --git a/doc/props/P_LIQUID b/doc/props/P_LIQUID
index 1631a8e..55672bb 100644
--- a/doc/props/P_LIQUID
+++ b/doc/props/P_LIQUID
@@ -1,8 +1,21 @@
-NAME:
-    P_LIQUID                      "w_max_wasserfuellmenge"      
 
-DEFINIERT IN:
-    /sys/fishing.h
+P_LIQUID
+********
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_LIQUID                      "w_max_wasserfuellmenge"
+
+
+DEFINIERT IN
+============
+
+   /sys/fishing.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_LOCALCMDS b/doc/props/P_LOCALCMDS
index 5a7b515..02a3c2a 100644
--- a/doc/props/P_LOCALCMDS
+++ b/doc/props/P_LOCALCMDS
@@ -1,12 +1,25 @@
-NAME:
-    P_LOCALCMDS                   "localcmds"                   
 
-DEFINIERT IN:
-    /sys/properties.h
+P_LOCALCMDS
+***********
 
-BESCHREIBUNG:
-    Ein Array von Arrays aller Befehle die im Spieler selbst definiert sind.
-    ({ ({ "befehl", "funktion", flag, wizlevel }) })
-    Wenn flag gesetzt ist werden nur die ersten Zeichen die auch in Befehl
-    angegeben sind mit dem Verb ueberprueft. Siehe auch
-    add_action("funktion", "befehl", 1) und AddCmd("befehl", "funktion", 1).
+
+NAME
+====
+
+   P_LOCALCMDS                   "localcmds"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Ein Array von Arrays aller Befehle die im Spieler selbst definiert sind.
+   ({ ({ "befehl", "funktion", flag, wizlevel }) })
+   Wenn flag gesetzt ist werden nur die ersten Zeichen die auch in Befehl
+   angegeben sind mit dem Verb ueberprueft. Siehe auch
+   add_action("funktion", "befehl", 1) und AddCmd("befehl", "funktion", 1).
diff --git a/doc/props/P_LOCATION b/doc/props/P_LOCATION
index 97344d8..cf2ed6c 100644
--- a/doc/props/P_LOCATION
+++ b/doc/props/P_LOCATION
@@ -1,19 +1,32 @@
-NAME:
-    P_LOCATION                   "location"
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_LOCATION
+**********
 
-BESCHREIBUNG:
-    Hier kann der Spieler mit dem Befehl "ort" den Ort setzen,
-    von dem er kommt bzw. zu kommen glaubt ;)
-    Um wieder den automatisch ermittelten Ort anzuzeigen, ist
-    P_LOCATION auf 0 zu setzen.
-    
-SIEHE AUCH:
-    ort
 
-----------------------------------------------------------------------------
+NAME
+====
+
+   P_LOCATION                   "location"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Hier kann der Spieler mit dem Befehl "ort" den Ort setzen,
+   von dem er kommt bzw. zu kommen glaubt ;)
+   Um wieder den automatisch ermittelten Ort anzuzeigen, ist
+   P_LOCATION auf 0 zu setzen.
+
+
+SIEHE AUCH
+==========
+
+   ort
+
 Last modified: Sat Jul 01 23:16:00 2000 by Mupfel
-    
-    
diff --git a/doc/props/P_LOG_INFO b/doc/props/P_LOG_INFO
index b6bd8dc..0ed186d 100644
--- a/doc/props/P_LOG_INFO
+++ b/doc/props/P_LOG_INFO
@@ -1,32 +1,55 @@
-NAME:
-    P_LOG_INFO                    "log_info"                    
 
-DEFINIERT IN:
-    /sys/properties.h
+P_LOG_INFO
+**********
 
-BESCHREIBUNG:
-     Wenn diese Property gesetzt ist wird jede Frage, die ein
-     Monster nicht beantworten kann, im Report-File des
-     zustaendigen Magiers geloggt.
 
-     Es ist jedoch auch moeglich, direkt einen Filenamen anzugeben.
-     Bei diesen wird dann jedoch automatisch ein /log/ vorne angehaengt.
+NAME
+====
 
-BEISPIELE:
-     SetProp(P_LOG_INFO,1);           // Alle fehlenden Infos dieses
-                                         Monsters werden in das Report-
-                                         File unter /log/report/ gelogt.
+   P_LOG_INFO                    "log_info"
 
-     SetProp(P_LOG_INFO,"tilly/opa"); // Alle fehlenden Infos dieses
-                                         Monsters werden in das File
-                                         monster unter /log/tilly/ ge-
-                                         logt.
-BEMERKUNGEN:
-     Bei nachtraeglich angeschlossenen Monstern empfiehlt sich Variante 
-     2 der Beispiele. Ein muehsames Suchen (und Loeschen) der fehlenden 
-     Infos des Monsters im Report-File eruebrigt sich dann naemlich.
 
-SIEHE AUCH:
-     P_LOG_FILE, write_file(), log_file(), AddInfo
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn diese Property gesetzt ist wird jede Frage, die ein
+   Monster nicht beantworten kann, im Report-File des
+   zustaendigen Magiers geloggt.
+
+   Es ist jedoch auch moeglich, direkt einen Filenamen anzugeben.
+   Bei diesen wird dann jedoch automatisch ein /log/ vorne angehaengt.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_LOG_INFO,1);           // Alle fehlenden Infos dieses
+                                       Monsters werden in das Report-
+                                       File unter /log/report/ gelogt.
+
+   SetProp(P_LOG_INFO,"tilly/opa"); // Alle fehlenden Infos dieses
+                                       Monsters werden in das File
+                                       monster unter /log/tilly/ ge-
+                                       logt.
+
+
+BEMERKUNGEN
+===========
+
+   Bei nachtraeglich angeschlossenen Monstern empfiehlt sich Variante
+   2 der Beispiele. Ein muehsames Suchen (und Loeschen) der fehlenden
+   Infos des Monsters im Report-File eruebrigt sich dann naemlich.
+
+
+SIEHE AUCH
+==========
+
+   P_LOG_FILE, write_file(), log_file(), AddInfo
 
 Letzte Aenderung: 13.09.04 Tilly@MorgenGrauen
diff --git a/doc/props/P_LONG b/doc/props/P_LONG
index 04a3659..bad7968 100644
--- a/doc/props/P_LONG
+++ b/doc/props/P_LONG
@@ -1,29 +1,48 @@
+
 P_LONG
-NAME:
-     P_LONG					"long"
+******
 
-DEFINIERT IN:
-     <thing/description.h>
 
-BESCHREIBUNG:
-     Die Langbeschreibung des Objektes als String oder Closure (diese muss
-     einen String zurueckgeben). Die Langbeschreibung wird beim Untersuchen
-     des Objektes ausgegeben. Sie sollte umgebrochen sein.
+NAME
+====
 
-     Diese Property bestimmt die Ansicht des Objektes von aussen. Fuer die
-     Innen(lang)ansicht von Raeumen muss man P_INT_LONG benutzen.
+   P_LONG                                     "long"
 
-BEMERKUNGEN:
-     - long() ("untersuche") filtert P_LONG durch process_string()
-       -> daher sind Closures moeglich
 
-BEISPIELE:
+DEFINIERT IN
+============
 
-     SetProp(P_LONG, "Diese Axt ist eine furchtbare Waffe!\n");
+   <thing/description.h>
 
-SIEHE AUCH:
-     Aehnliches:	P_SHORT, long()
-     Sonstiges:		P_INT_LONG, process_string(), break_string()
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Die Langbeschreibung des Objektes als String oder Closure (diese muss
+   einen String zurueckgeben). Die Langbeschreibung wird beim Untersuchen
+   des Objektes ausgegeben. Sie sollte umgebrochen sein.
+
+   Diese Property bestimmt die Ansicht des Objektes von aussen. Fuer die
+   Innen(lang)ansicht von Raeumen muss man P_INT_LONG benutzen.
+
+
+BEMERKUNGEN
+===========
+
+   - long() ("untersuche") filtert P_LONG durch process_string()
+     -> daher sind Closures moeglich
+
+
+BEISPIELE
+=========
+
+   SetProp(P_LONG, "Diese Axt ist eine furchtbare Waffe!\n");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches:        P_SHORT, long()
+   Sonstiges:         P_INT_LONG, process_string(), break_string()
+
 Last modified: Sun May 19 20:10:18 1996 by Wargon
diff --git a/doc/props/P_LONG_EMPTY b/doc/props/P_LONG_EMPTY
index 1a9cce2..cac74e0 100644
--- a/doc/props/P_LONG_EMPTY
+++ b/doc/props/P_LONG_EMPTY
@@ -1,8 +1,21 @@
-NAME:
-    P_LONG_EMPTY                  "w_longdesc_empty"            
 
-DEFINIERT IN:
-    /sys/fishing.h
+P_LONG_EMPTY
+************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_LONG_EMPTY                  "w_longdesc_empty"
+
+
+DEFINIERT IN
+============
+
+   /sys/fishing.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_LONG_FULL b/doc/props/P_LONG_FULL
index 3b997f6..7de6081 100644
--- a/doc/props/P_LONG_FULL
+++ b/doc/props/P_LONG_FULL
@@ -1,8 +1,21 @@
-NAME:
-    P_LONG_FULL                   "w_longdesc_full"             
 
-DEFINIERT IN:
-    /sys/fishing.h
+P_LONG_FULL
+***********
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_LONG_FULL                   "w_longdesc_full"
+
+
+DEFINIERT IN
+============
+
+   /sys/fishing.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_MAGIC b/doc/props/P_MAGIC
index b3a0bb7..8994533 100644
--- a/doc/props/P_MAGIC
+++ b/doc/props/P_MAGIC
@@ -1,8 +1,21 @@
-NAME:
-    P_MAGIC                       "magic"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_MAGIC
+*******
 
-BESCHREIBUNG:
-     Dieses Objekt ist magisch.
+
+NAME
+====
+
+   P_MAGIC                       "magic"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Dieses Objekt ist magisch.
diff --git a/doc/props/P_MAGIC_RESISTANCE_OFFSET b/doc/props/P_MAGIC_RESISTANCE_OFFSET
index 47ae281..8d270e3 100644
--- a/doc/props/P_MAGIC_RESISTANCE_OFFSET
+++ b/doc/props/P_MAGIC_RESISTANCE_OFFSET
@@ -1,33 +1,52 @@
-NAME:
-     P_MAGIC_RESISTANCE_OFFSET                     "mag_res_offset"                     
 
-DEFINIERT IN:
-     /sys/new_skills.h
+P_MAGIC_RESISTANCE_OFFSET
+*************************
 
-BESCHREIBUNG:
-     Mapping mit ganzzahligen Prozentwerten in 0.01%-Schritten
-     (0-10000) zur Resistenz/Empfindlichkeit gegen bestimmte
-     Magieklassen.
 
-     Die Property wird in der Methode SpellDefend() ausgewertet und
-     fuer einen auf den NPC/Spieler gesprochenen Spell werden die
-     Werte fuer all dessen Magieklassen aufaddiert. Daher sind auch
-     negative Werte fuer einzelne Magieklassen sinnvoll.
+NAME
+====
 
-     P_MAGIC_RESISTANCE_OFFSET und SpellDefend werden von den Spellbooks
-     ausgewertet. Der Einfluss ist daher abhaengig vom Spellbook.
+   P_MAGIC_RESISTANCE_OFFSET                     "mag_res_offset"
 
-BEISPIELE:
-     // Goblins
-     SetProp(P_MAGIC_RESISTANCE_OFFSET,
-               ([MT_ANGRIFF:600,         // 6% Resistenz gegen Angriff
-	         MT_ILLUSION:500,        // 6% Resistenz gegen Illusionen
-                 MT_VERWANDLUNG:-300,    // 3% Empfindlichkeit
-		 MT_HELLSICHT:-750,      // 7.5% Empfindlichkeit
-		 MT_BEHERRSCHUNG:250])); // 2.5% Resistenz
 
-SIEHE AUCH:
-     Verwandt:     SpellDefend
-     Aehnlich:     P_NOMAGIC
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Mapping mit ganzzahligen Prozentwerten in 0.01%-Schritten
+   (0-10000) zur Resistenz/Empfindlichkeit gegen bestimmte
+   Magieklassen.
+
+   Die Property wird in der Methode SpellDefend() ausgewertet und
+   fuer einen auf den NPC/Spieler gesprochenen Spell werden die
+   Werte fuer all dessen Magieklassen aufaddiert. Daher sind auch
+   negative Werte fuer einzelne Magieklassen sinnvoll.
+
+   P_MAGIC_RESISTANCE_OFFSET und SpellDefend werden von den Spellbooks
+   ausgewertet. Der Einfluss ist daher abhaengig vom Spellbook.
+
+
+BEISPIELE
+=========
+
+   // Goblins
+   SetProp(P_MAGIC_RESISTANCE_OFFSET,
+             ([MT_ANGRIFF:600,         // 6% Resistenz gegen Angriff
+               MT_ILLUSION:500,        // 6% Resistenz gegen Illusionen
+               MT_VERWANDLUNG:-300,    // 3% Empfindlichkeit
+               MT_HELLSICHT:-750,      // 7.5% Empfindlichkeit
+               MT_BEHERRSCHUNG:250])); // 2.5% Resistenz
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:     SpellDefend
+   Aehnlich:     P_NOMAGIC
 
 29.Dez 2007 Gloinson
diff --git a/doc/props/P_MAILADDR b/doc/props/P_MAILADDR
index e1b849d..32556a7 100644
--- a/doc/props/P_MAILADDR
+++ b/doc/props/P_MAILADDR
@@ -1,8 +1,21 @@
-NAME:
-    P_MAILADDR                    "mailaddr"                    
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_MAILADDR
+**********
 
-BESCHREIBUNG:
-     EMailadresse des Spielers.
+
+NAME
+====
+
+   P_MAILADDR                    "mailaddr"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   EMailadresse des Spielers.
diff --git a/doc/props/P_MAP_RESTRICTIONS b/doc/props/P_MAP_RESTRICTIONS
index fd422c0..ee9e620 100644
--- a/doc/props/P_MAP_RESTRICTIONS
+++ b/doc/props/P_MAP_RESTRICTIONS
@@ -1,39 +1,56 @@
-NAME:
-    P_MAP_RESTRICTIONS                      "lib_p_map_restrictions"
 
-DEFINIERT IN:
-    /sys/rooms.h
+P_MAP_RESTRICTIONS
+******************
 
-BESCHREIBUNG:
-     Mit dieser Property laesst sich beeinflussen, welche Informationen ueber
-     den Raum das Morgengrauen dem Client zukommen laesst (zur Zeit nur via
-     GMCP, aber es mag irgendwann auch andere Wege geben).
-     Beispielsweise sollen vielleicht in einem Labyrinth keine eindeutigen
-     Raum-IDs uebermittelt werden.
 
-     Als Werte duerfen alle MR_-Konstanten aus <rooms.h> verwendet werden.
-     Diese duerfen auch ver-ODER-t werden, wenn mehr als eine davon gelten
-     soll.
+NAME
+====
 
-     Moegliche Werte:
-       MR_NOUID - verhindert, dass die eindeutige Raum-ID uebertragen wird.
-       MR_NOINFO - verhindert, dass ueberhaupt irgendetwas an den Client
-                   uebermittelt wird. Damit kriegt er ggf. auch nicht mit,
-                   dass er Raum gewechselt wurde. Ist fuer Sequenzraeume
-                   gedacht. Bitte SEHR sparsam einsetzen.
+   P_MAP_RESTRICTIONS                      "lib_p_map_restrictions"
 
-     Die Verwendung dieser Property sollte der Ausnahmefall sein!
 
-BEISPIEL:
-     (in einem Raum)
-     SetProp(P_MAP_RESTRICTIONS, MR_NOUID);
+DEFINIERT IN
+============
 
-     Nun bekommt der Client zwar die Kurzbeschreibung des Raums, die Region
-     und die sichtbaren Ausgaenge, aber keine UID mehr uebermittelt.
+   /sys/rooms.h
 
-SIEHE AUCH:
-     gmcp
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Mit dieser Property laesst sich beeinflussen, welche Informationen ueber
+   den Raum das Morgengrauen dem Client zukommen laesst (zur Zeit nur via
+   GMCP, aber es mag irgendwann auch andere Wege geben).
+   Beispielsweise sollen vielleicht in einem Labyrinth keine eindeutigen
+   Raum-IDs uebermittelt werden.
+
+   Als Werte duerfen alle MR_-Konstanten aus <rooms.h> verwendet werden.
+   Diese duerfen auch ver-ODER-t werden, wenn mehr als eine davon gelten
+   soll.
+
+   Moegliche Werte:
+     MR_NOUID - verhindert, dass die eindeutige Raum-ID uebertragen wird.
+     MR_NOINFO - verhindert, dass ueberhaupt irgendetwas an den Client
+                 uebermittelt wird. Damit kriegt er ggf. auch nicht mit,
+                 dass er Raum gewechselt wurde. Ist fuer Sequenzraeume
+                 gedacht. Bitte SEHR sparsam einsetzen.
+
+   Die Verwendung dieser Property sollte der Ausnahmefall sein!
+
+
+BEISPIEL
+========
+
+   (in einem Raum)
+   SetProp(P_MAP_RESTRICTIONS, MR_NOUID);
+
+   Nun bekommt der Client zwar die Kurzbeschreibung des Raums, die Region
+   und die sichtbaren Ausgaenge, aber keine UID mehr uebermittelt.
+
+
+SIEHE AUCH
+==========
+
+   gmcp
+
 23.02.2013, Zesstra
-
diff --git a/doc/props/P_MARRIED b/doc/props/P_MARRIED
index 768404e..7cafa6f 100644
--- a/doc/props/P_MARRIED
+++ b/doc/props/P_MARRIED
@@ -1,12 +1,28 @@
-NAME:
-    P_MARRIED                     "married"                     
 
-DEFINIERT IN:
-    /sys/properties.h
+P_MARRIED
+*********
 
-BESCHREIBUNG:
-     Enthaelt einen String mit der uid des Partners
-     (sofern vorhanden)
 
-SIEHE AUCH:
-     scheidung
+NAME
+====
+
+   P_MARRIED                     "married"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt einen String mit der uid des Partners
+   (sofern vorhanden)
+
+
+SIEHE AUCH
+==========
+
+   scheidung
diff --git a/doc/props/P_MATERIAL b/doc/props/P_MATERIAL
index 5be1bef..4ea4032 100644
--- a/doc/props/P_MATERIAL
+++ b/doc/props/P_MATERIAL
@@ -1,79 +1,99 @@
+
 P_MATERIAL
-NAME:
-     P_MATERIAL					"material"
+**********
 
-DEFINIERT IN:
-     <thing/material.h>
 
-BESCHREIBUNG:
-     Mapping mit prozentualen Anteilen von Materialien, aus denen ein Objekt 
-     besteht.
+NAME
+====
 
-BEMERKUNGEN:
-     Bei SetProp kann man zu Vereinfachung auch ein einzelnes Material oder 
-     ein Array aus Materialien angeben. Die Anteile werden dann 
-     gleichmaessig verteilt.
+   P_MATERIAL                                 "material"
 
-BEISPIELE:
-     // 100% Eis
-     SetProp(P_MATERIAL, MAT_ICE);
-     // QueryProp(P_MATERIAL) -> ([MAT_ICE:100])
 
-     // 50% Eis, 50% Misc-Holz
-     SetProp(P_MATERIAL, ({ MAT_ICE, MAT_MISC_WOOD }));
-     // QueryProp(P_MATERIAL) -> ([MAT_ICE:50, MAT_MISC_WOOD: 50])
+DEFINIERT IN
+============
 
-     // 60% Eis, 40% Misc-Holz
-     SetProp(P_MATERIAL, ([ MAT_ICE: 60, MAT_MISC_WOOD: 40 ]));
+   <thing/material.h>
 
-     // 100% Papier
-     SetProp(P_MATERIAL, MAT_PAPER);
-     // QueryProp(P_MATERIAL) -> ([MAT_PAPER:100])
 
-     // 50% Silber, 50% Gold
-     SetProp(P_MATERIAL, ({MAT_SILVER, MAT_GOLD}))
-     // QueryProp(P_MATERIAL) -> ([MAT_SILVER:50,MAT_GOLD:50])
+BESCHREIBUNG
+============
 
-     // ein weiser Schmied, der was daraus macht:
-     int i;
-     string *mat, mname, mgroup;
-     mat=m_indices(ob->QueryProp(P_MATERIAL));
-     i=sizeof(mat);
+   Mapping mit prozentualen Anteilen von Materialien, aus denen ein Objekt
+   besteht.
 
-     write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
-     while(i--) {
-      // den Namen erkennen/aussprechen:
-      // Materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
-      // alles aus Metall wird zu +100% gut erkannt ...
-      mname=MATERIALDB->MaterialName(mat[i], WER,
-	     ({5, ([MATERIAL_SYMMETRIC_RECOGNIZABILITY:
-			({MATGROUP_METAL, 100})])}));
 
-      // und nur Metalle analysieren ...
-      if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
-       int j;
-       string *mgr;
-       mgr=MATERIALDB->GetMatMembership(mat[i]);
-       j=sizeof(mgr);
-       mgroup=" gehoert zu ";
-       while(j--) {
-        mgroup+=MATERIALDB->GroupName(mgr[j]);
-        if(j>0) mgroup+=", ";
-       }
-      } else mgroup=" kenne ich nicht";
-      printf("%-12.12s: %s\n",mname, mgroup);
+BEMERKUNGEN
+===========
+
+   Bei SetProp kann man zu Vereinfachung auch ein einzelnes Material oder
+   ein Array aus Materialien angeben. Die Anteile werden dann
+   gleichmaessig verteilt.
+
+
+BEISPIELE
+=========
+
+   // 100% Eis
+   SetProp(P_MATERIAL, MAT_ICE);
+   // QueryProp(P_MATERIAL) -> ([MAT_ICE:100])
+
+   // 50% Eis, 50% Misc-Holz
+   SetProp(P_MATERIAL, ({ MAT_ICE, MAT_MISC_WOOD }));
+   // QueryProp(P_MATERIAL) -> ([MAT_ICE:50, MAT_MISC_WOOD: 50])
+
+   // 60% Eis, 40% Misc-Holz
+   SetProp(P_MATERIAL, ([ MAT_ICE: 60, MAT_MISC_WOOD: 40 ]));
+
+   // 100% Papier
+   SetProp(P_MATERIAL, MAT_PAPER);
+   // QueryProp(P_MATERIAL) -> ([MAT_PAPER:100])
+
+   // 50% Silber, 50% Gold
+   SetProp(P_MATERIAL, ({MAT_SILVER, MAT_GOLD}))
+   // QueryProp(P_MATERIAL) -> ([MAT_SILVER:50,MAT_GOLD:50])
+
+   // ein weiser Schmied, der was daraus macht:
+   int i;
+   string *mat, mname, mgroup;
+   mat=m_indices(ob->QueryProp(P_MATERIAL));
+   i=sizeof(mat);
+
+   write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
+   while(i--) {
+    // den Namen erkennen/aussprechen:
+    // Materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
+    // alles aus Metall wird zu +100% gut erkannt ...
+    mname=MATERIALDB->MaterialName(mat[i], WER,
+           ({5, ([MATERIAL_SYMMETRIC_RECOGNIZABILITY:
+                      ({MATGROUP_METAL, 100})])}));
+
+    // und nur Metalle analysieren ...
+    if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
+     int j;
+     string *mgr;
+     mgr=MATERIALDB->GetMatMembership(mat[i]);
+     j=sizeof(mgr);
+     mgroup=" gehoert zu ";
+     while(j--) {
+      mgroup+=MATERIALDB->GroupName(mgr[j]);
+      if(j>0) mgroup+=", ";
      }
+    } else mgroup=" kenne ich nicht";
+    printf("%-12.12s: %s\n",mname, mgroup);
+   }
 
 
-SIEHE AUCH:
-     Konzepte:	  material, materialerkennung
-     Grundlegend: /sys/thing/material.h
-     Methoden:    QueryMaterial(), QueryMaterialGroup(), MaterialList(),
-     Listen:	  AllMaterials(), AllGroups(), Dump()
-		  materialliste, materialgruppen
-     Master:	  AddMaterial(), ConvMaterialList(), MaterialGroup(),
-		  GroupName(), MaterialName(),
-		  GetGroupMembers(), GetMatMembership()
-     Sonstiges:	  P_MATERIAL_KNOWLEDGE
+SIEHE AUCH
+==========
 
-7. Mai 2004 Gloinson
\ No newline at end of file
+   Konzepte:    material, materialerkennung
+   Grundlegend: /sys/thing/material.h
+   Methoden:    QueryMaterial(), QueryMaterialGroup(), MaterialList(),
+   Listen:      AllMaterials(), AllGroups(), Dump()
+                materialliste, materialgruppen
+   Master:      AddMaterial(), ConvMaterialList(), MaterialGroup(),
+                GroupName(), MaterialName(),
+                GetGroupMembers(), GetMatMembership()
+   Sonstiges:   P_MATERIAL_KNOWLEDGE
+
+7. Mai 2004 Gloinson
diff --git a/doc/props/P_MATERIAL_KNOWLEDGE b/doc/props/P_MATERIAL_KNOWLEDGE
index c954083..0694fef 100644
--- a/doc/props/P_MATERIAL_KNOWLEDGE
+++ b/doc/props/P_MATERIAL_KNOWLEDGE
@@ -1,39 +1,56 @@
+
 P_MATERIAL_KNOWLEDGE
-NAME:
-     P_MATERIAL_KNOWLEDGE				"material_knowledge"
-
-DEFINIERT IN:
-     <thing/material.h>
-
-BESCHREIBUNG:
-     Mapping, Closure oder Integer mit Regeln zur Materialienerkennung. Die
-     Regeln sind in "man materialerkennung" zu lesen.
-
-     Diese werden bei Angabe eines Spielerobjektes in MaterialList() oder
-     MaterialName() an diesem abgefragt und hat Einfluss darauf, ob ein
-     Material genau, generell oder gar nicht erkannt wird.
-
-     In den einzelnen Rassenshells sind Defaultwerte dafuer angegeben.
+********************
 
 
-BEISPIELE:
-     // Erkennungsbonus auf diverse Materialgruppen und
-     // Erkennungsbonus/-malus auf biologische/nichtbiologische Materialien
-     SetProp(P_MATERIAL_KNOWLEDGE,
-	([MATGROUP_WOOD:20,
-	  MATGROUP_METAL:20,
-	  MATGROUP_ELEMENTAL:20,
-	  MATGROUP_CLOTH:20,
-	  MATERIAL_SYMMETRIC_RECOGNIZABILITY: ({MATGROUP_BIO,5})]));
+NAME
+====
 
-SIEHE AUCH:
-     Konzepte:	  material, materialerkennung
-     Grundlegend: P_MATERIAL, /sys/thing/material.h
-     Methoden:    QueryMaterial(), QueryMaterialGroup(), MaterialList(),
-     Listen:	  AllMaterials(), AllGroups(), Dump()
-		  materialliste, materialgruppen
-     Master:	  AddMaterial(), ConvMaterialList(), MaterialGroup(),
-		  GroupName(), MaterialName(),
-		  GetGroupMembers(), GetMatMembership()
+   P_MATERIAL_KNOWLEDGE                               "material_knowledge"
 
-7. Mai 2004 Gloinson
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   <thing/material.h>
+
+
+BESCHREIBUNG
+============
+
+   Mapping, Closure oder Integer mit Regeln zur Materialienerkennung. Die
+   Regeln sind in "man materialerkennung" zu lesen.
+
+   Diese werden bei Angabe eines Spielerobjektes in MaterialList() oder
+   MaterialName() an diesem abgefragt und hat Einfluss darauf, ob ein
+   Material genau, generell oder gar nicht erkannt wird.
+
+   In den einzelnen Rassenshells sind Defaultwerte dafuer angegeben.
+
+
+BEISPIELE
+=========
+
+   // Erkennungsbonus auf diverse Materialgruppen und
+   // Erkennungsbonus/-malus auf biologische/nichtbiologische Materialien
+   SetProp(P_MATERIAL_KNOWLEDGE,
+      ([MATGROUP_WOOD:20,
+        MATGROUP_METAL:20,
+        MATGROUP_ELEMENTAL:20,
+        MATGROUP_CLOTH:20,
+        MATERIAL_SYMMETRIC_RECOGNIZABILITY: ({MATGROUP_BIO,5})]));
+
+
+SIEHE AUCH
+==========
+
+   Konzepte:    material, materialerkennung
+   Grundlegend: P_MATERIAL, /sys/thing/material.h
+   Methoden:    QueryMaterial(), QueryMaterialGroup(), MaterialList(),
+   Listen:      AllMaterials(), AllGroups(), Dump()
+                materialliste, materialgruppen
+   Master:      AddMaterial(), ConvMaterialList(), MaterialGroup(),
+                GroupName(), MaterialName(),
+                GetGroupMembers(), GetMatMembership()
+
+7. Mai 2004 Gloinson
diff --git a/doc/props/P_MAX_ALCOHOL b/doc/props/P_MAX_ALCOHOL
index 10a64c3..541972f 100644
--- a/doc/props/P_MAX_ALCOHOL
+++ b/doc/props/P_MAX_ALCOHOL
@@ -1,21 +1,39 @@
-NAME:
-	P_MAX_ALCOHOL			"max_alcohol"
 
-DEFINIERT IN:
-	/sys/living/life.h
+P_MAX_ALCOHOL
+*************
 
-BESCHREIBUNG:
-	Numerischer Wert fuer den maximalen Grad der Betrunkenheit eines
-	Lebewesens.
 
-ANMERKUNGEN:
-	Der Wert von P_MAX_ALCOHOL ist bei den einzelnen Rassen verschieden,
-	ebenso wie der fuer P_ALCOHOL_DELAY. Die genauen Werte stehen in den
-	Rassen-Shells (/std/shells).
+NAME
+====
 
-SIEHE AUCH:
-	P_ALCOHOL, P_ALCOHOL_DELAY, drink_alcohol,
-	P_MAX_FOOD, P_MAX_DRINK
+   P_MAX_ALCOHOL                   "max_alcohol"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert fuer den maximalen Grad der Betrunkenheit eines
+   Lebewesens.
+
+
+ANMERKUNGEN
+===========
+
+   Der Wert von P_MAX_ALCOHOL ist bei den einzelnen Rassen verschieden,
+   ebenso wie der fuer P_ALCOHOL_DELAY. Die genauen Werte stehen in den
+   Rassen-Shells (/std/shells).
+
+
+SIEHE AUCH
+==========
+
+   P_ALCOHOL, P_ALCOHOL_DELAY, drink_alcohol,
+   P_MAX_FOOD, P_MAX_DRINK
+
 Last modified: Tue Dec 18 12:16:10 2001 by Patryn
diff --git a/doc/props/P_MAX_DRINK b/doc/props/P_MAX_DRINK
index 940eddc..33fdeb8 100644
--- a/doc/props/P_MAX_DRINK
+++ b/doc/props/P_MAX_DRINK
@@ -1,21 +1,39 @@
-NAME:
-	P_MAX_DRINK			"max_drink"
 
-DEFINIERT IN:
-	/sys/living/life.h
+P_MAX_DRINK
+***********
 
-BESCHREIBUNG:
-	Numerischer Wert fuer die maximale Saettigung eines Lebewesens mit
-	Getraenken.
 
-ANMERKUNGEN:
-	Der Wert von P_MAX_DRINK ist bei den einzelnen Rassen verschieden,
-	ebenso wie der fuer P_DRINK_DELAY. Die genauen Werte stehen in den
-	Rassen-Shells (/std/shells).
+NAME
+====
 
-SIEHE AUCH:
-	P_DRINK, P_DRINK_DELAY, drink_soft,
-	P_MAX_FOOD, P_MAX_ALCOHOL
+   P_MAX_DRINK                     "max_drink"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert fuer die maximale Saettigung eines Lebewesens mit
+   Getraenken.
+
+
+ANMERKUNGEN
+===========
+
+   Der Wert von P_MAX_DRINK ist bei den einzelnen Rassen verschieden,
+   ebenso wie der fuer P_DRINK_DELAY. Die genauen Werte stehen in den
+   Rassen-Shells (/std/shells).
+
+
+SIEHE AUCH
+==========
+
+   P_DRINK, P_DRINK_DELAY, drink_soft,
+   P_MAX_FOOD, P_MAX_ALCOHOL
+
 Last modified: Tue Dec 18 12:16:10 2001 by Patryn
diff --git a/doc/props/P_MAX_FOOD b/doc/props/P_MAX_FOOD
index 5f49cfe..fa7f661 100644
--- a/doc/props/P_MAX_FOOD
+++ b/doc/props/P_MAX_FOOD
@@ -1,20 +1,38 @@
-NAME:
-	P_MAX_FOOD			"max_food"
 
-DEFINIERT IN:
-	/sys/living/life.h
+P_MAX_FOOD
+**********
 
-BESCHREIBUNG:
-	Numerischer Wert fuer die maximale Saettigung eines Lebewesens.
 
-ANMERKUNGEN:
-	Der Wert von P_MAX_FOOD ist bei den einzelnen Rassen verschieden, 
-	ebenso wie der fuer P_FOOD_DELAY. Die genauen Werte stehen in den
-	Rassen-Shells (/std/shells).
+NAME
+====
 
-SIEHE AUCH:
-	P_FOOD, P_FOOD_DELAY, eat_food,
-	P_MAX_DRINK, P_MAX_ALCOHOL
+   P_MAX_FOOD                      "max_food"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert fuer die maximale Saettigung eines Lebewesens.
+
+
+ANMERKUNGEN
+===========
+
+   Der Wert von P_MAX_FOOD ist bei den einzelnen Rassen verschieden,
+   ebenso wie der fuer P_FOOD_DELAY. Die genauen Werte stehen in den
+   Rassen-Shells (/std/shells).
+
+
+SIEHE AUCH
+==========
+
+   P_FOOD, P_FOOD_DELAY, eat_food,
+   P_MAX_DRINK, P_MAX_ALCOHOL
+
 Last modified: Tue Dec 18 12:16:10 2001 by Patryn
diff --git a/doc/props/P_MAX_HANDS b/doc/props/P_MAX_HANDS
index 96b1ae8..4c65afa 100644
--- a/doc/props/P_MAX_HANDS
+++ b/doc/props/P_MAX_HANDS
@@ -1,27 +1,45 @@
+
 P_MAX_HANDS
-NAME:
-     P_MAX_HANDS                   "max_hands"
+***********
 
-DEFINIERT IN:
-     /sys/living/combat.h
 
-BESCHREIBUNG:
-     Anzahl der Haende, die ein Wesen hat.
+NAME
+====
 
-BEMERKUNGEN:
-     An dieser Propertie sollte bei Spielern nur im Rahmen der
-     Gilden 'gespielt' werden.
+   P_MAX_HANDS                   "max_hands"
 
-     Fuer Magier, die in ihren Npc gerne alle Properties setzen,
-     gilt folgendes:
 
-                  Setzt diese Propertie NIE auf 0 !
+DEFINIERT IN
+============
 
-     Ohne Haende wird kein Npc irgendeinen Spieler angreifen koennen.
+   /sys/living/combat.h
 
-SIEHE AUCH:
-     P_HANDS, P_HANDS_USED_BY
-     P_USED_HANDS, P_FREE_HANDS
-     UseHands, FreeHands
+
+BESCHREIBUNG
+============
+
+   Anzahl der Haende, die ein Wesen hat.
+
+
+BEMERKUNGEN
+===========
+
+   An dieser Propertie sollte bei Spielern nur im Rahmen der
+   Gilden 'gespielt' werden.
+
+   Fuer Magier, die in ihren Npc gerne alle Properties setzen,
+   gilt folgendes:
+
+                Setzt diese Propertie NIE auf 0 !
+
+   Ohne Haende wird kein Npc irgendeinen Spieler angreifen koennen.
+
+
+SIEHE AUCH
+==========
+
+   P_HANDS, P_HANDS_USED_BY
+   P_USED_HANDS, P_FREE_HANDS
+   UseHands, FreeHands
 
 1.Feb.2004 Gloinson
diff --git a/doc/props/P_MAX_HP b/doc/props/P_MAX_HP
index 13a84c4..fcb3cb0 100644
--- a/doc/props/P_MAX_HP
+++ b/doc/props/P_MAX_HP
@@ -1,14 +1,30 @@
-NAME:
-    P_MAX_HP                      "max_hp"
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_MAX_HP
+********
 
-BESCHREIBUNG:
-     Maximale Anzahl der Lebenspunkte.
 
-SIEHE AUCH:
-     Props:	P_HP
-     Verwandt:	UpdateAttributes()
+NAME
+====
 
-21.April 2006 Gloinson
\ No newline at end of file
+   P_MAX_HP                      "max_hp"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Maximale Anzahl der Lebenspunkte.
+
+
+SIEHE AUCH
+==========
+
+   Props:     P_HP
+   Verwandt:  UpdateAttributes()
+
+21.April 2006 Gloinson
diff --git a/doc/props/P_MAX_OBJECTS b/doc/props/P_MAX_OBJECTS
index a76f0d1..68c008f 100644
--- a/doc/props/P_MAX_OBJECTS
+++ b/doc/props/P_MAX_OBJECTS
@@ -1,22 +1,44 @@
-NAME:
-    P_MAX_OBJECTS                  "max_objects"                  
 
-DEFINIERT IN:
-    /sys/container.h
+P_MAX_OBJECTS
+*************
 
-BESCHREIBUNG:
-     Maximale Anzahl an Objekten, die in einen Container passen.
-     P_MAX_OBJECTS sollte im Normfall zwischen 0 - 100 liegen.
 
-BEMERKUNGEN:
-     Soll es sich um einen herausragenden Container handeln, der zum
-     Beispiel das Gewicht um mehr als 50% reduziert, sollte P_MAX_OBJECTS
-     einen kleineren Wert haben. Das Verhaeltnis von P_MAX_WEIGHT,
-     P_WEIGHT_PERCENT und dieser Property sollte stimmen.
+NAME
+====
 
-BEISPIELE:
-     Als Beispiel sollte man sich das Postpaket ansehen und sich an dessen
-     Werten orientieren (/p/service/loco/obj/parcel).
+   P_MAX_OBJECTS                  "max_objects"
 
-SIEHE AUCH:
-     P_MAX_WEIGHT, P_WEIGHT_PERCENT, P_LIGHT_TRANSPARENCY, container
+
+DEFINIERT IN
+============
+
+   /sys/container.h
+
+
+BESCHREIBUNG
+============
+
+   Maximale Anzahl an Objekten, die in einen Container passen.
+   P_MAX_OBJECTS sollte im Normfall zwischen 0 - 100 liegen.
+
+
+BEMERKUNGEN
+===========
+
+   Soll es sich um einen herausragenden Container handeln, der zum
+   Beispiel das Gewicht um mehr als 50% reduziert, sollte P_MAX_OBJECTS
+   einen kleineren Wert haben. Das Verhaeltnis von P_MAX_WEIGHT,
+   P_WEIGHT_PERCENT und dieser Property sollte stimmen.
+
+
+BEISPIELE
+=========
+
+   Als Beispiel sollte man sich das Postpaket ansehen und sich an dessen
+   Werten orientieren (/p/service/loco/obj/parcel).
+
+
+SIEHE AUCH
+==========
+
+   P_MAX_WEIGHT, P_WEIGHT_PERCENT, P_LIGHT_TRANSPARENCY, container
diff --git a/doc/props/P_MAX_PASSENGERS b/doc/props/P_MAX_PASSENGERS
index b0bc6a5..32e5f27 100644
--- a/doc/props/P_MAX_PASSENGERS
+++ b/doc/props/P_MAX_PASSENGERS
@@ -1,9 +1,22 @@
-NAME:
-    P_MAX_PASSENGERS              "maxpass"                     
 
-DEFINIERT IN:
-    /sys/transport.h
+P_MAX_PASSENGERS
+****************
 
-BESCHREIBUNG:
-     Numerischer Wert fuer die maximale Anzahl von Wesen in dem Transporter.
-     0 bedeutet unbeschaenkte Spielerzahl.
+
+NAME
+====
+
+   P_MAX_PASSENGERS              "maxpass"
+
+
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert fuer die maximale Anzahl von Wesen in dem Transporter.
+   0 bedeutet unbeschaenkte Spielerzahl.
diff --git a/doc/props/P_MAX_POISON b/doc/props/P_MAX_POISON
index 35b8e9b..0d39dc4 100644
--- a/doc/props/P_MAX_POISON
+++ b/doc/props/P_MAX_POISON
@@ -1,8 +1,21 @@
-NAME:
-    P_MAX_POISON                  "max_poison"                  
 
-DEFINIERT IN:
-    /sys/properties.h
+P_MAX_POISON
+************
 
-BESCHREIBUNG:
-     Maximale Vergiftung
+
+NAME
+====
+
+   P_MAX_POISON                  "max_poison"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Maximale Vergiftung
diff --git a/doc/props/P_MAX_SP b/doc/props/P_MAX_SP
index 307aaf5..7f7aa43 100644
--- a/doc/props/P_MAX_SP
+++ b/doc/props/P_MAX_SP
@@ -1,14 +1,30 @@
-NAME:
-    P_MAX_SP                      "max_sp"
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_MAX_SP
+********
 
-BESCHREIBUNG:
-     Maximale Anzahl der Magiepunkte.
 
-SIEHE AUCH:
-     Props:	P_SP
-     Verwandt:	UpdateAttributes()
+NAME
+====
 
-21.April 2006 Gloinson
\ No newline at end of file
+   P_MAX_SP                      "max_sp"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Maximale Anzahl der Magiepunkte.
+
+
+SIEHE AUCH
+==========
+
+   Props:     P_SP
+   Verwandt:  UpdateAttributes()
+
+21.April 2006 Gloinson
diff --git a/doc/props/P_MAX_WEIGHT b/doc/props/P_MAX_WEIGHT
index 7e2f16b..abd0942 100644
--- a/doc/props/P_MAX_WEIGHT
+++ b/doc/props/P_MAX_WEIGHT
@@ -1,19 +1,38 @@
-NAME:
-    P_MAX_WEIGHT                  "max_weight"                  
 
-DEFINIERT IN:
-    /sys/container.h
+P_MAX_WEIGHT
+************
 
-BESCHREIBUNG:
-     Maximales Gewicht in Gramm, das in dem Container verstaut werden
-     kann.
 
-BEMERKUNGEN:
-     Das Verhaeltnis von P_WEIGHT_PERCENT, P_MAX_OBJECTS und dieser Property
-     sollte stimmen. Eine feste Grenze gibt es nicht. Als Beispiel kann 
-     das Postpaket von Loco unter /p/servive/loco/obj herangezogen werden.
-     Bessere Werte als in diesem sollte es nicht, und wenn doch nur gut be-
-     gruendet, geben.
+NAME
+====
 
-SIEHE AUCH:
-     P_WEIGHT_PERCENT, P_MAX_OBJECTS, P_LIGHT_TRANSPARENCY, container
+   P_MAX_WEIGHT                  "max_weight"
+
+
+DEFINIERT IN
+============
+
+   /sys/container.h
+
+
+BESCHREIBUNG
+============
+
+   Maximales Gewicht in Gramm, das in dem Container verstaut werden
+   kann.
+
+
+BEMERKUNGEN
+===========
+
+   Das Verhaeltnis von P_WEIGHT_PERCENT, P_MAX_OBJECTS und dieser Property
+   sollte stimmen. Eine feste Grenze gibt es nicht. Als Beispiel kann
+   das Postpaket von Loco unter /p/servive/loco/obj herangezogen werden.
+   Bessere Werte als in diesem sollte es nicht, und wenn doch nur gut be-
+   gruendet, geben.
+
+
+SIEHE AUCH
+==========
+
+   P_WEIGHT_PERCENT, P_MAX_OBJECTS, P_LIGHT_TRANSPARENCY, container
diff --git a/doc/props/P_MESSAGE_BEEP b/doc/props/P_MESSAGE_BEEP
index 9e40fa5..6ecf718 100644
--- a/doc/props/P_MESSAGE_BEEP
+++ b/doc/props/P_MESSAGE_BEEP
@@ -1,19 +1,38 @@
-NAME:
-    P_MESSAGE_BEEP                        "message_beep"
 
-DEFINIERT IN:
-    /sys/player/comm.h
+P_MESSAGE_BEEP
+**************
 
-BESCHREIBUNG:
-     Wertebereich: int=0..3600 (Sekunden)
-     Wenn gesetzt wird in der Kommunikation des Spielers in den angegebenen
-     Zeitraeumen ein Signalton ausgegeben. Wird in player/comm.c in comm_beep()
-     verarbeitet.
-     Ausgabe erfolgt nur, wenn P_VISUALBELL nicht gesetzt ist.
-     Wird im Spielerobjekt gespeichert!
 
-SIEHE AUCH:
-     klingelton, ton, P_VISUALBELL, P_MESSAGE_LAST_BEEP
+NAME
+====
 
-LETZTE AENDERUNG:
+   P_MESSAGE_BEEP                        "message_beep"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/comm.h
+
+
+BESCHREIBUNG
+============
+
+   Wertebereich: int=0..3600 (Sekunden)
+   Wenn gesetzt wird in der Kommunikation des Spielers in den angegebenen
+   Zeitraeumen ein Signalton ausgegeben. Wird in player/comm.c in comm_beep()
+   verarbeitet.
+   Ausgabe erfolgt nur, wenn P_VISUALBELL nicht gesetzt ist.
+   Wird im Spielerobjekt gespeichert!
+
+
+SIEHE AUCH
+==========
+
+   klingelton, ton, P_VISUALBELL, P_MESSAGE_LAST_BEEP
+
+
+LETZTE AENDERUNG
+================
+
    16. Mai 2007  Ennox
diff --git a/doc/props/P_MESSAGE_PREPEND b/doc/props/P_MESSAGE_PREPEND
index ee44dda..be54d65 100644
--- a/doc/props/P_MESSAGE_PREPEND
+++ b/doc/props/P_MESSAGE_PREPEND
@@ -1,18 +1,37 @@
-NAME:
-    P_MESSAGE_PREPEND                        "message_prepend"
 
-DEFINIERT IN:
-    /sys/player/comm.h
+P_MESSAGE_PREPEND
+*****************
 
-BESCHREIBUNG:
-     Wertebereich: int = 0,1
-     Wenn vom Ziel eingeschaltet, wird von teile mit (_tell) und sag (_communicate) das 
-     BS_PREPEND_INDENT Flag fuer break_string genutzt, um den Indent (Sender) ggf.
-     vor dem Textblock anzuzeigen.
-     Wird im Spielerobjekt gespeichert!
 
-SIEHE AUCH:
-     grafik aus, break_string, senderwiederholung
+NAME
+====
 
-LETZTE AENDERUNG:
+   P_MESSAGE_PREPEND                        "message_prepend"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/comm.h
+
+
+BESCHREIBUNG
+============
+
+   Wertebereich: int = 0,1
+   Wenn vom Ziel eingeschaltet, wird von teile mit (_tell) und sag (_communicate) das
+   BS_PREPEND_INDENT Flag fuer break_string genutzt, um den Indent (Sender) ggf.
+   vor dem Textblock anzuzeigen.
+   Wird im Spielerobjekt gespeichert!
+
+
+SIEHE AUCH
+==========
+
+   grafik aus, break_string, senderwiederholung
+
+
+LETZTE AENDERUNG
+================
+
    16. Mai 2007  Ennox
diff --git a/doc/props/P_MIN_STOCK b/doc/props/P_MIN_STOCK
index d896fb3..3be8d4e 100644
--- a/doc/props/P_MIN_STOCK
+++ b/doc/props/P_MIN_STOCK
@@ -1,37 +1,55 @@
-NAME:
-	P_MIN_STOCK			"min_stock"
 
-DEFINIERT IN:
-	/sys/bank.h
+P_MIN_STOCK
+***********
 
-BESCHREIBUNG:
-	P_MIN_STOCK enthaelt die Anzahl an Objekten, die ein Lager eines
-	Ladens minimal behaelt. Standardmaessig entspricht dies 20 Objekten
-	und sollte auch nicht wesentlich erhoeht werden. Nur fuer
-	Anfaengergebiete waeren Werte zwischen 20 und 60 akzeptabel. In die
-	Berechnung der Anzahl von Objekten gehen keine Objekte ein, die im
-	Laden mittels AddFixedObject() staendig verfuegbar gemacht worden
-	sind und auch keine Objekte, die per AddItem() im Lager hinzugefuegt
-	wurden und nach jedem Reset aufgefrischt werden.
-	Bei jedem Reset wird nun aus Speicher- und Laggruenden das Lager um
-	eine bestimmte Prozentzahl an Objekten dezimiert. Entscheidend
-	dafuer ist der Wert in der Property P_STORE_CONSUME.
-	Beide hier erwaehnten Properties sollten ueberigens nur mittels
-	QueryProp/SetProp ausgelesen bzw. veraendert werden.
 
-BEISPIEL:
-	In '/std/store.c' befindet sich bereits ein gutes Beispiel, da dort
-	der Standardwert von 20 Objekten bereitgestellt wird:
-	  create()
-	  { ...
-	    SetProp(P_MIN_STOCK,20);
-	  }
-	Diesen Wert kann man in einem davon abgeleiteten eigenen Lager
-	natuerlich auch veraendern.
+NAME
+====
 
-SIEHE AUCH:
-	P_STORE_CONSUME, SetStorageRoom(), /std/store.c, /std/shop.c
-	AddItem(), RemoveItem(), AddFixedObject(), RemoveFixedObject()
+   P_MIN_STOCK                     "min_stock"
 
-----------------------------------------------------------------------------
-Last modified: 19-Jun-2015, Arathorn 
+
+DEFINIERT IN
+============
+
+   /sys/bank.h
+
+
+BESCHREIBUNG
+============
+
+   P_MIN_STOCK enthaelt die Anzahl an Objekten, die ein Lager eines
+   Ladens minimal behaelt. Standardmaessig entspricht dies 20 Objekten
+   und sollte auch nicht wesentlich erhoeht werden. Nur fuer
+   Anfaengergebiete waeren Werte zwischen 20 und 60 akzeptabel. In die
+   Berechnung der Anzahl von Objekten gehen keine Objekte ein, die im
+   Laden mittels AddFixedObject() staendig verfuegbar gemacht worden
+   sind und auch keine Objekte, die per AddItem() im Lager hinzugefuegt
+   wurden und nach jedem Reset aufgefrischt werden.
+   Bei jedem Reset wird nun aus Speicher- und Laggruenden das Lager um
+   eine bestimmte Prozentzahl an Objekten dezimiert. Entscheidend
+   dafuer ist der Wert in der Property P_STORE_CONSUME.
+   Beide hier erwaehnten Properties sollten ueberigens nur mittels
+   QueryProp/SetProp ausgelesen bzw. veraendert werden.
+
+
+BEISPIEL
+========
+
+   In '/std/store.c' befindet sich bereits ein gutes Beispiel, da dort
+   der Standardwert von 20 Objekten bereitgestellt wird:
+     create()
+     { ...
+       SetProp(P_MIN_STOCK,20);
+     }
+   Diesen Wert kann man in einem davon abgeleiteten eigenen Lager
+   natuerlich auch veraendern.
+
+
+SIEHE AUCH
+==========
+
+   P_STORE_CONSUME, SetStorageRoom(), /std/store.c, /std/shop.c
+   AddItem(), RemoveItem(), AddFixedObject(), RemoveFixedObject()
+
+Last modified: 19-Jun-2015, Arathorn
diff --git a/doc/props/P_MMSGIN b/doc/props/P_MMSGIN
index cd8e84e..98d37f3 100644
--- a/doc/props/P_MMSGIN
+++ b/doc/props/P_MMSGIN
@@ -1,9 +1,22 @@
-NAME:
-    P_MMSGIN                      "mmsgin"                      
 
-DEFINIERT IN:
-    /sys/player/moving.h
+P_MMSGIN
+********
 
-BESCHREIBUNG:
-     String mit der Meldung, die beim Verlassen eines Raumes mit M_TPORT
-     an die uebrigen Anwesenden ausgegeben wird.
+
+NAME
+====
+
+   P_MMSGIN                      "mmsgin"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/moving.h
+
+
+BESCHREIBUNG
+============
+
+   String mit der Meldung, die beim Verlassen eines Raumes mit M_TPORT
+   an die uebrigen Anwesenden ausgegeben wird.
diff --git a/doc/props/P_MMSGOUT b/doc/props/P_MMSGOUT
index defd09f..6035ba8 100644
--- a/doc/props/P_MMSGOUT
+++ b/doc/props/P_MMSGOUT
@@ -1,9 +1,22 @@
-NAME:
-    P_MMSGOUT                     "mmsgout"                     
 
-DEFINIERT IN:
-    /sys/player/moving.h
+P_MMSGOUT
+*********
 
-BESCHREIBUNG:
-     String mit der Meldung, die beim Betreten eines Raumes mit M_TPORT
-     an die uebrigen Anwesenden ausgegeben wird.
+
+NAME
+====
+
+   P_MMSGOUT                     "mmsgout"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/moving.h
+
+
+BESCHREIBUNG
+============
+
+   String mit der Meldung, die beim Betreten eines Raumes mit M_TPORT
+   an die uebrigen Anwesenden ausgegeben wird.
diff --git a/doc/props/P_MSGIN b/doc/props/P_MSGIN
index cf14a91..f5d90f8 100644
--- a/doc/props/P_MSGIN
+++ b/doc/props/P_MSGIN
@@ -1,9 +1,22 @@
-NAME:
-    P_MSGIN                       "msgin"                       
 
-DEFINIERT IN:
-    /sys/player/moving.h
+P_MSGIN
+*******
 
-BESCHREIBUNG:
-     String mit der Meldung, die beim Betreten eines Raumes mit M_GO
-     an die uebrigen Anwesenden ausgegeben wird.
+
+NAME
+====
+
+   P_MSGIN                       "msgin"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/moving.h
+
+
+BESCHREIBUNG
+============
+
+   String mit der Meldung, die beim Betreten eines Raumes mit M_GO
+   an die uebrigen Anwesenden ausgegeben wird.
diff --git a/doc/props/P_MSGOUT b/doc/props/P_MSGOUT
index 0587afb..95a8545 100644
--- a/doc/props/P_MSGOUT
+++ b/doc/props/P_MSGOUT
@@ -1,9 +1,22 @@
-NAME:
-    P_MSGOUT                      "msgout"                      
 
-DEFINIERT IN:
-    /sys/player/moving.h
+P_MSGOUT
+********
 
-BESCHREIBUNG:
-     String mit der Meldung, die beim Verlassen eines Raumes mit M_GO
-     an die uebrigen Anwesenden ausgegeben wird.
+
+NAME
+====
+
+   P_MSGOUT                      "msgout"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/moving.h
+
+
+BESCHREIBUNG
+============
+
+   String mit der Meldung, die beim Verlassen eines Raumes mit M_GO
+   an die uebrigen Anwesenden ausgegeben wird.
diff --git a/doc/props/P_MSG_PROB b/doc/props/P_MSG_PROB
index d520067..b4465df 100644
--- a/doc/props/P_MSG_PROB
+++ b/doc/props/P_MSG_PROB
@@ -1,19 +1,35 @@
-NAME:
-    P_MSG_PROB                    "msg_prob"                    
 
-DEFINIERT IN:
-    /sys/room/description.h
+P_MSG_PROB
+**********
 
-BESCHREIBUNG:
-     Parameter fuer die Wartezeit in Sekunden bis zur naechsten Ausgabe
-     einer Raumnachricht.
-     Wird in AddRoomMessage() explizit mitgesetzt. Koennte natuerlich von
-     einer Nachrichtenmethode auch regelmaessig geaendert werden, um
-     mehr Zufall in die Intervalle zu bringen.
 
-SIEHE AUCH:
-     LFuns:    AddRoomMessage()
-     Props:    P_ROOM_MSG, P_MSG_PROB
-     Verwandt: call_out()
+NAME
+====
+
+   P_MSG_PROB                    "msg_prob"
+
+
+DEFINIERT IN
+============
+
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   Parameter fuer die Wartezeit in Sekunden bis zur naechsten Ausgabe
+   einer Raumnachricht.
+   Wird in AddRoomMessage() explizit mitgesetzt. Koennte natuerlich von
+   einer Nachrichtenmethode auch regelmaessig geaendert werden, um
+   mehr Zufall in die Intervalle zu bringen.
+
+
+SIEHE AUCH
+==========
+
+   LFuns:    AddRoomMessage()
+   Props:    P_ROOM_MSG, P_MSG_PROB
+   Verwandt: call_out()
 
 2.Feb 2016 Gloinson
diff --git a/doc/props/P_MUD_NEWBIE b/doc/props/P_MUD_NEWBIE
index bebb77f..71801eb 100644
--- a/doc/props/P_MUD_NEWBIE
+++ b/doc/props/P_MUD_NEWBIE
@@ -1,17 +1,31 @@
-NAME:
-    P_MUD_NEWBIE                      "_lib_mud_newbie" 
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_MUD_NEWBIE
+************
 
-BESCHREIBUNG:
-    Der Spieler hat bei Erstellung des Charakters angegeben, noch nie in einem
-    Mud gespielt zu haben. In diesem Fall enthaelt die Property den
-    Zeitstempel der Charaktererstellung.
 
-    ACHTUNG: Diese Prop wird nicht gespeichert, d.h. nachdem ein solcher
-    Spieler "ende" gemacht hat oder ein Reboot erfolgte, ist diese Information
-    verloren.
+NAME
+====
 
-SIEHE AUCH:
+   P_MUD_NEWBIE                      "_lib_mud_newbie"
 
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Der Spieler hat bei Erstellung des Charakters angegeben, noch nie in einem
+   Mud gespielt zu haben. In diesem Fall enthaelt die Property den
+   Zeitstempel der Charaktererstellung.
+
+   ACHTUNG: Diese Prop wird nicht gespeichert, d.h. nachdem ein solcher
+   Spieler "ende" gemacht hat oder ein Reboot erfolgte, ist diese Information
+   verloren.
+
+
+SIEHE AUCH
+==========
diff --git a/doc/props/P_MURDER_MSG b/doc/props/P_MURDER_MSG
index 63d594c..c565cfa 100644
--- a/doc/props/P_MURDER_MSG
+++ b/doc/props/P_MURDER_MSG
@@ -1,63 +1,83 @@
+
 P_MURDER_MSG
-
-NAME:
-     P_MURDER_MSG			"murder_msg"
-
-DEFINIERT IN:
-     /sys/properties.h
-
-BESCHREIBUNG:
-     In dieser Property kann man einen String oder eine Closure ablegen
-     dessen Wert bzw. deren Resultat beim Tod des NPCs auf dem
-     Moerder-Kanal erscheint.
-     Normalerweise ist die Property nicht gesetzt, woraufhin zufaellig
-     eine Meldung generiert wird.
-
-     Ob der Tod eines NPCs auf dem Moerder-Kanal erscheint, haengt davon ab,
-     wie oft und welche Art von NPCs in der letzten Zeit getoetet wurden. Zum
-     Beispiel ist es eher selten, dass ein schwacher NPC auf dem Kanal
-     erscheint, wenn kuerzlich viele starke NPCs getoetet wurden. Allerdings
-     kann man auf diese Regelung mittels der Property P_FORCE_MURDER_MSG
-     Einfluss nehmen.
-
-     Wird in einen String der Platzhalter %s eingefuegt, so erscheint an der
-     Stelle spaeter der Name des Moerders.
-
-BEISPIELE:
-     // Zum Beispiel koennte man ja bei einer Ratte, die getoetet wird,
-     // folgendes auf dem Moerder-Kanal ausgeben lassen:
-     SetProp(P_MURDER_MSG,
-       "Ratten aller MUDs, vereinigt euch gegen %s!");
+************
 
 
-     // Um auch mal eine Closure zu zeigen: die Ratte koennte auch ihre
-     // Meldung erst bei ihrem Tod erstellen lassen:
-     private string moerder_meldung() {
-       return ({"Achweh!", "Au!", "Weia!"})[random(3)];
-     }
+NAME
+====
 
-     SetProp(P_MURDER_MSG, #'moerder_meldung);
+   P_MURDER_MSG                       "murder_msg"
 
-BEMERKUNGEN:
-     - P_NOCORPSE:
-       Ist in dem NPC die Property P_NOCORPSE gesetzt, so wird die
-       Moerdermeldung nicht auf dem Kanal gesendet, da diese Ausgabe ueber
-       /std/corpse laeuft.
-       Will man dennoch eine Meldung, so sollte man /std/corpse im die()
-       selbst clonen, daran Identify(this_object()) rufen und das geclonte
-       Objekt wieder entsorgen.
 
-     - Closures:
-       Closures bieten sich an, wenn ein zentrales Objekt fuer mehrere NPCs
-       bestimmte Moerdermeldungen generieren soll. Dann muss nur noch bei
-       den NPCs die Closure, die auf die erstellende Methode zeigt gesetzt
-       werden.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     Tod:		die(L)
-     Verwandt:		P_FORCE_MURDER_MSG
-     Todesmeldungen:	P_KILL_NAME, P_KILL_MSG, P_DIE_MSG
-			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
-     Sonstiges:		P_CORPSE, P_NOCORPSE, /std/corpse.c
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property kann man einen String oder eine Closure ablegen
+   dessen Wert bzw. deren Resultat beim Tod des NPCs auf dem
+   Moerder-Kanal erscheint.
+   Normalerweise ist die Property nicht gesetzt, woraufhin zufaellig
+   eine Meldung generiert wird.
+
+   Ob der Tod eines NPCs auf dem Moerder-Kanal erscheint, haengt davon ab,
+   wie oft und welche Art von NPCs in der letzten Zeit getoetet wurden. Zum
+   Beispiel ist es eher selten, dass ein schwacher NPC auf dem Kanal
+   erscheint, wenn kuerzlich viele starke NPCs getoetet wurden. Allerdings
+   kann man auf diese Regelung mittels der Property P_FORCE_MURDER_MSG
+   Einfluss nehmen.
+
+   Wird in einen String der Platzhalter %s eingefuegt, so erscheint an der
+   Stelle spaeter der Name des Moerders.
+
+
+BEISPIELE
+=========
+
+   // Zum Beispiel koennte man ja bei einer Ratte, die getoetet wird,
+   // folgendes auf dem Moerder-Kanal ausgeben lassen:
+   SetProp(P_MURDER_MSG,
+     "Ratten aller MUDs, vereinigt euch gegen %s!");
+
+
+   // Um auch mal eine Closure zu zeigen: die Ratte koennte auch ihre
+   // Meldung erst bei ihrem Tod erstellen lassen:
+   private string moerder_meldung() {
+     return ({"Achweh!", "Au!", "Weia!"})[random(3)];
+   }
+
+   SetProp(P_MURDER_MSG, #'moerder_meldung);
+
+
+BEMERKUNGEN
+===========
+
+   - P_NOCORPSE:
+     Ist in dem NPC die Property P_NOCORPSE gesetzt, so wird die
+     Moerdermeldung nicht auf dem Kanal gesendet, da diese Ausgabe ueber
+     /std/corpse laeuft.
+     Will man dennoch eine Meldung, so sollte man /std/corpse im die()
+     selbst clonen, daran Identify(this_object()) rufen und das geclonte
+     Objekt wieder entsorgen.
+
+   - Closures:
+     Closures bieten sich an, wenn ein zentrales Objekt fuer mehrere NPCs
+     bestimmte Moerdermeldungen generieren soll. Dann muss nur noch bei
+     den NPCs die Closure, die auf die erstellende Methode zeigt gesetzt
+     werden.
+
+
+SIEHE AUCH
+==========
+
+   Tod:               die(L)
+   Verwandt:          P_FORCE_MURDER_MSG
+   Todesmeldungen:    P_KILL_NAME, P_KILL_MSG, P_DIE_MSG
+                      P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+   Sonstiges:         P_CORPSE, P_NOCORPSE, /std/corpse.c
 
 30. Mai 2006, Gloinson
diff --git a/doc/props/P_M_ATTR_MOD b/doc/props/P_M_ATTR_MOD
index 8a79717..d279484 100644
--- a/doc/props/P_M_ATTR_MOD
+++ b/doc/props/P_M_ATTR_MOD
@@ -1,42 +1,64 @@
-NAME:
-    P_M_ATTR_MOD                  "magic_attributes_modifier"
 
-DEFINIERT IN:
-    /sys/living/attributes.h
+P_M_ATTR_MOD
+************
 
-BESCHREIBUNG:
-    Mapping, das die Attribute des Spielers veraendert, der diese Ruestung
-    bzw. Waffe traegt bzw. benutzt.
 
-    Zu beachten:
-    P_M_ATTR_MOD kann problemlos durch ein SetProp() gesetzt werden. Es wird
-    nur dann beruecksichtigt, wenn die Ruestung/Waffe getragen/benutzt wird.
-    Beim Tragen/Ausziehen/Zuecken/Wegstecken wird im Spieler automatisch
-    UpdateAttributes() aufgerufen.
+NAME
+====
 
-    Fuer Krankheiten etc. oder Objekte, deren *Besitz* allein schon die
-    Attribute veraendern sollen, verwendet man besser P_X_ATTR_MOD.
+   P_M_ATTR_MOD                  "magic_attributes_modifier"
 
-    P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
-    positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
-    CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.
 
-BEMERKUNGEN:
-    Die Werte sollten moeglichst nicht dynamisch geaendert werden.
-    Wenn doch, muss mit TestLimitViolation() am Spieler auf Validitaet
-    geprueft und ggf. mit UpdateAttributes() an ihm upgedatet werden.
+DEFINIERT IN
+============
 
-BEISPIELE:
-    // Dem Spieler, der das Objekt benutzt, wird 2 von A_INT abgezogen und
-    // dafuer 1 auf A_STR aufaddiert.
-    SetProp(P_M_ATTR_MOD, ([A_INT:-2, A_STR:1]) );
+   /sys/living/attributes.h
 
-SIEHE AUCH:
-    QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
-    SetAttribute(), SetRealAttribute(), UpdateAttributes(),
-    SetTimedAttrModifier(), QueryTimedAttrModifier(),
-    DeleteTimedAttrModifier(),
-    P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
-    P_TIMED_ATTR_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
+BESCHREIBUNG
+============
+
+   Mapping, das die Attribute des Spielers veraendert, der diese Ruestung
+   bzw. Waffe traegt bzw. benutzt.
+
+   Zu beachten:
+   P_M_ATTR_MOD kann problemlos durch ein SetProp() gesetzt werden. Es wird
+   nur dann beruecksichtigt, wenn die Ruestung/Waffe getragen/benutzt wird.
+   Beim Tragen/Ausziehen/Zuecken/Wegstecken wird im Spieler automatisch
+   UpdateAttributes() aufgerufen.
+
+   Fuer Krankheiten etc. oder Objekte, deren *Besitz* allein schon die
+   Attribute veraendern sollen, verwendet man besser P_X_ATTR_MOD.
+
+   P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
+   positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
+   CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.
+
+
+BEMERKUNGEN
+===========
+
+   Die Werte sollten moeglichst nicht dynamisch geaendert werden.
+   Wenn doch, muss mit TestLimitViolation() am Spieler auf Validitaet
+   geprueft und ggf. mit UpdateAttributes() an ihm upgedatet werden.
+
+
+BEISPIELE
+=========
+
+   // Dem Spieler, der das Objekt benutzt, wird 2 von A_INT abgezogen und
+   // dafuer 1 auf A_STR aufaddiert.
+   SetProp(P_M_ATTR_MOD, ([A_INT:-2, A_STR:1]) );
+
+
+SIEHE AUCH
+==========
+
+   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+   SetTimedAttrModifier(), QueryTimedAttrModifier(),
+   DeleteTimedAttrModifier(),
+   P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
+   P_TIMED_ATTR_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
 
 02.02.2016, Gloinson
diff --git a/doc/props/P_M_HEALTH_MOD b/doc/props/P_M_HEALTH_MOD
index a4c89e6..cdc3fd4 100644
--- a/doc/props/P_M_HEALTH_MOD
+++ b/doc/props/P_M_HEALTH_MOD
@@ -1,40 +1,64 @@
-NAME:
-     P_M_HEALTH_MOD                  "magic_health_modifier"
 
-DEFINIERT IN:
-     /sys/living/attributes.h
+P_M_HEALTH_MOD
+**************
 
-BESCHREIBUNG:
-     Mapping, mit dem die maximalen Lebenspunkte und Magiepunkte eines 
-     Spielers veraendert werden, der diese Ruestung/Waffe traegt/benutzt. Im 
-     Gegensatz zu P_M_ATTR_MOD erfolgt hier jedoch keine Blockade.
 
-     Zu beachten: P_M_HEALTH_MOD kann problemlos durch ein SetProp() gesetzt 
-     werden, es wird nur beruecksichtigt, wenn die Ruestung/Waffe 
-     getragen/benutzt wird. Beim tragen/ausziehen/zuecken/wegstecken wird im 
-     Spieler automatisch UpdateAttributes() aufgerufen.
+NAME
+====
 
-     Fuer Krankheiten etc. verwendet man besser die Property P_X_HEALTH_MOD.
+   P_M_HEALTH_MOD                  "magic_health_modifier"
 
-     Bitte beachten: Die positiven Modifier werden nicht mehr 1:1 auf die
-     Lebens- und Magiepunkte draufaddiert. Stattdessen wird nur noch ein 
-     gewisser Teil dort hinzuaddiert, der mit groesserer Menge von Punkten
-     zunimmt, und im unteren Bereich grob dem Wert entspricht. Das 
-     theoretische Maximum ist insgesamt 149.
 
-BEMERKUNGEN:
-     Die Werte sollten moeglichst nicht dynamisch geaendert werden.
-     Wenn doch, muss mit TestLimitViolation() am Spieler auf Validitaet 
-     geprueft werden und mit UpdateAttributes() an ihm ggf. upgedatet.
+DEFINIERT IN
+============
 
-BEISPIEL:
-     SetProp(P_M_HEALTH_MOD,([P_HP:5,P_SP:-5]));
-     // Dem Spieler, der das Objekt benutzt, wird P_MAX_HP um 5 erhoeht und
-     // P_MAX_SP um 5 erniedrigt.
+   /sys/living/attributes.h
 
-SIEHE AUCH:
-     P_X_HEALTH_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, balance
 
-LETZTE AeNDERUNG:
-    Fre,11.05.2007, 00:20 von Humni
+BESCHREIBUNG
+============
 
+   Mapping, mit dem die maximalen Lebenspunkte und Magiepunkte eines
+   Spielers veraendert werden, der diese Ruestung/Waffe traegt/benutzt. Im
+   Gegensatz zu P_M_ATTR_MOD erfolgt hier jedoch keine Blockade.
+
+   Zu beachten: P_M_HEALTH_MOD kann problemlos durch ein SetProp() gesetzt
+   werden, es wird nur beruecksichtigt, wenn die Ruestung/Waffe
+   getragen/benutzt wird. Beim tragen/ausziehen/zuecken/wegstecken wird im
+   Spieler automatisch UpdateAttributes() aufgerufen.
+
+   Fuer Krankheiten etc. verwendet man besser die Property P_X_HEALTH_MOD.
+
+   Bitte beachten: Die positiven Modifier werden nicht mehr 1:1 auf die
+   Lebens- und Magiepunkte draufaddiert. Stattdessen wird nur noch ein
+   gewisser Teil dort hinzuaddiert, der mit groesserer Menge von Punkten
+   zunimmt, und im unteren Bereich grob dem Wert entspricht. Das
+   theoretische Maximum ist insgesamt 149.
+
+
+BEMERKUNGEN
+===========
+
+   Die Werte sollten moeglichst nicht dynamisch geaendert werden.
+   Wenn doch, muss mit TestLimitViolation() am Spieler auf Validitaet
+   geprueft werden und mit UpdateAttributes() an ihm ggf. upgedatet.
+
+
+BEISPIEL
+========
+
+   SetProp(P_M_HEALTH_MOD,([P_HP:5,P_SP:-5]));
+   // Dem Spieler, der das Objekt benutzt, wird P_MAX_HP um 5 erhoeht und
+   // P_MAX_SP um 5 erniedrigt.
+
+
+SIEHE AUCH
+==========
+
+   P_X_HEALTH_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, balance
+
+
+LETZTE AeNDERUNG
+================
+
+   Fre,11.05.2007, 00:20 von Humni
diff --git a/doc/props/P_NAME b/doc/props/P_NAME
index f609cea..1fdc261 100644
--- a/doc/props/P_NAME
+++ b/doc/props/P_NAME
@@ -1,65 +1,84 @@
+
 P_NAME
+******
 
-NAME:
-     P_NAME "name"
 
-DEFINIERT IN:
-     <thing/description.h>
+NAME
+====
 
-BESCHREIBUNG:
-     In dieser Property wird der Name eines Objektes vermerkt. Wenn der Name
-     regelmaessig dekliniert wird, reicht ein einfacher String. Wird der
-     Name unregelmaessig dekliniert, so kann man ein Array von vier Strings
-     mit dem Namen im Nominativ, Genitiv, Dativ und Akkusativ (in dieser
-     Reihenfolge) angeben.
+   P_NAME "name"
 
-     Die Funktion name() behandelt recht viele Sonderfaelle; man sollte den
-     Namen also erst einmal in der Form eines einzelnen Strings pruefen.
 
-     Eine Sonderrolle nehmen Unit-Objekte ein: Hier kann man einen Namen
-     fuer den Singular und einen Namen fuer den Plural vergeben.
+DEFINIERT IN
+============
 
-     Setzt man P_NAME eines Unit-Objekts auf einen einfachen String, so wird
-     dieser als Name sowohl im Singular als auch im Plural verwendet.
+   <thing/description.h>
 
-     Uebergibt man ein Array von Strings, so wird der erste Eintrag fuer den
-     Singular und der zweite Eintrag fuer den Plural benutzt.
 
-     Bei Unit-Objekten ist es nicht moeglich, auch noch zwischen den
-     verschiedenen Faellen zu unterscheiden.
+BESCHREIBUNG
+============
 
-BEMERKUNGEN:
-     Diese Property sollte nur den reinen Namen enthalten; will man dem
-     Namen noch Adjektive voranstellen, so sollte man dies mit P_NAME_ADJ
-     bewerkstelligen, also statt
+   In dieser Property wird der Name eines Objektes vermerkt. Wenn der Name
+   regelmaessig dekliniert wird, reicht ein einfacher String. Wird der
+   Name unregelmaessig dekliniert, so kann man ein Array von vier Strings
+   mit dem Namen im Nominativ, Genitiv, Dativ und Akkusativ (in dieser
+   Reihenfolge) angeben.
 
-     SetProp(P_NAME, ({ "alter Hut", "alten Huts",
-                        "alten Hut", "alten Hut" }) );
+   Die Funktion name() behandelt recht viele Sonderfaelle; man sollte den
+   Namen also erst einmal in der Form eines einzelnen Strings pruefen.
 
-     besser
+   Eine Sonderrolle nehmen Unit-Objekte ein: Hier kann man einen Namen
+   fuer den Singular und einen Namen fuer den Plural vergeben.
 
-     SetProp(P_NAME, "Hut");
-     SetProp(P_NAME_ADJ, "alt");
+   Setzt man P_NAME eines Unit-Objekts auf einen einfachen String, so wird
+   dieser als Name sowohl im Singular als auch im Plural verwendet.
 
-     Bei Lebewesen wird lower_case(P_NAME) (bei Arrays das erste Element 
-     daraus) automatisch als LivingName gesetzt.
+   Uebergibt man ein Array von Strings, so wird der erste Eintrag fuer den
+   Singular und der zweite Eintrag fuer den Plural benutzt.
 
-BEISPIELE:
-     Ein regelmaessig deklinierbarer Name:
+   Bei Unit-Objekten ist es nicht moeglich, auch noch zwischen den
+   verschiedenen Faellen zu unterscheiden.
 
-     SetProp(P_NAME, "Arkshat");
 
-     Hier ein Beispiel fuer einen unregelmaessig deklinierbaren Namen:
+BEMERKUNGEN
+===========
 
-     SetProp(P_NAME, ({ "Drache", "Drachen", "Drachen", "Drachen" }));
+   Diese Property sollte nur den reinen Namen enthalten; will man dem
+   Namen noch Adjektive voranstellen, so sollte man dies mit P_NAME_ADJ
+   bewerkstelligen, also statt
 
-     Und schliesslich der Name eines allseits bekannten Unit-Objektes:
+   SetProp(P_NAME, ({ "alter Hut", "alten Huts",
+                      "alten Hut", "alten Hut" }) );
 
-     SetProp(P_NAME, ({ "Muenze", "Muenzen" }));
+   besser
 
-SIEHE AUCH:
-     /std/thing/description.c, name(), P_NAME_ADJ, set_living_name(),
-     find_living(), find_livings()
+   SetProp(P_NAME, "Hut");
+   SetProp(P_NAME_ADJ, "alt");
 
-----------------------------------------------------------------------------
-Last modified: 19. Okt. 2015, Arathorn. 
+   Bei Lebewesen wird lower_case(P_NAME) (bei Arrays das erste Element
+   daraus) automatisch als LivingName gesetzt.
+
+
+BEISPIELE
+=========
+
+   Ein regelmaessig deklinierbarer Name:
+
+   SetProp(P_NAME, "Arkshat");
+
+   Hier ein Beispiel fuer einen unregelmaessig deklinierbaren Namen:
+
+   SetProp(P_NAME, ({ "Drache", "Drachen", "Drachen", "Drachen" }));
+
+   Und schliesslich der Name eines allseits bekannten Unit-Objektes:
+
+   SetProp(P_NAME, ({ "Muenze", "Muenzen" }));
+
+
+SIEHE AUCH
+==========
+
+   /std/thing/description.c, name(), P_NAME_ADJ, set_living_name(),
+   find_living(), find_livings()
+
+Last modified: 19. Okt. 2015, Arathorn.
diff --git a/doc/props/P_NAME_ADJ b/doc/props/P_NAME_ADJ
index 2bf15e6..c4cc4a4 100644
--- a/doc/props/P_NAME_ADJ
+++ b/doc/props/P_NAME_ADJ
@@ -1,55 +1,72 @@
+
 P_NAME_ADJ
-
-NAME:
-     P_NAME_ADJ "name_adj"
-
-DEFINIERT IN:
-     <thing/description.h>
-
-BESCHREIBUNG:
-     Diese Property enthaelt ein oder mehrere Adjektive in Form eines Arrays
-     von Strings. Es ist nur der Wortstamm anzugeben! Die Adjektive werden
-     von der Funktion name() dekliniert und vor den Namen gesetzt, wirken
-     also als Aufzaehlung von Adjektiven vor dem Namen.
-
-     Die hier angegebenen Adjektive dienen nur zur Ausgabe! Soll sich das
-     Objekt auch ueber Adjektive ansprechen lassen, muss man diese mit
-     AddAdjective() uebergeben.
-
-     Soll das Objekt nur ein einzelnes Namensadjektiv besitzen, kann man dem
-     SetProp()-Aufruf auch einen String uebergeben; gespeichert wird die
-     Property aber in jedem Fall als Array.
-
-     Wenn ein Adjektiv unregelmaessig ist, kann man die vier Faelle auch
-     als Array uebergeben. Man muss dann aber Arrays schachteln, damit von den
-     mehrfachen Adjektiven unterschieden werden kann.
-	
-BEISPIELE:
-     SetProp(P_NAME, "Hut");
-     SetProp(P_NAME_ADJ, "alt");
-
-     name(WESSEN,1)      => "des alten Huts"
+**********
 
 
-     // Zwei Adjektive, gleichrangig zu Substantiv
-     SetProp(P_NAME_ADJ, ({"alt", "gammelig"}));
+NAME
+====
 
-     name(WESSEN,1)      => "des alten, gammeligen Huts"
+   P_NAME_ADJ "name_adj"
 
 
-     // Zwei Adjektive, erstes ist Attribut zu zweitem
-     falsch:  SetProp(P_NAME_ADJ, ({"gruen", "gestreift"}));
-              name(WESSEN,1)      => "des gruenen, gestreiften Huts"
-     richtig: SetProp(P_NAME_ADJ, ({"gruen gestreift"}));
-              name(WESSEN,1)      => "des gruen gestreiften Huts"
+DEFINIERT IN
+============
 
-     // Unregelmaessiges Adjektiv
-     SetProp( P_NAME_ADJ,({({"rosa","rosa","rosa","rosa"})});
-              name(WESSEN,1)         => "des rosa Huts"
-     // Ohne inneres Array haette man 4 mal rosa als Adjektiv
-     // => "des rosaen, rosaen, rosaen, rosaen Huts"
+   <thing/description.h>
 
-SIEHE AUCH:
-     /std/thing/description.c, name(), P_NAME, DeclAdj()
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt ein oder mehrere Adjektive in Form eines Arrays
+   von Strings. Es ist nur der Wortstamm anzugeben! Die Adjektive werden
+   von der Funktion name() dekliniert und vor den Namen gesetzt, wirken
+   also als Aufzaehlung von Adjektiven vor dem Namen.
+
+   Die hier angegebenen Adjektive dienen nur zur Ausgabe! Soll sich das
+   Objekt auch ueber Adjektive ansprechen lassen, muss man diese mit
+   AddAdjective() uebergeben.
+
+   Soll das Objekt nur ein einzelnes Namensadjektiv besitzen, kann man dem
+   SetProp()-Aufruf auch einen String uebergeben; gespeichert wird die
+   Property aber in jedem Fall als Array.
+
+   Wenn ein Adjektiv unregelmaessig ist, kann man die vier Faelle auch
+   als Array uebergeben. Man muss dann aber Arrays schachteln, damit von den
+   mehrfachen Adjektiven unterschieden werden kann.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_NAME, "Hut");
+   SetProp(P_NAME_ADJ, "alt");
+
+   name(WESSEN,1)      => "des alten Huts"
+
+
+   // Zwei Adjektive, gleichrangig zu Substantiv
+   SetProp(P_NAME_ADJ, ({"alt", "gammelig"}));
+
+   name(WESSEN,1)      => "des alten, gammeligen Huts"
+
+
+   // Zwei Adjektive, erstes ist Attribut zu zweitem
+   falsch:  SetProp(P_NAME_ADJ, ({"gruen", "gestreift"}));
+            name(WESSEN,1)      => "des gruenen, gestreiften Huts"
+   richtig: SetProp(P_NAME_ADJ, ({"gruen gestreift"}));
+            name(WESSEN,1)      => "des gruen gestreiften Huts"
+
+   // Unregelmaessiges Adjektiv
+   SetProp( P_NAME_ADJ,({({"rosa","rosa","rosa","rosa"})});
+            name(WESSEN,1)         => "des rosa Huts"
+   // Ohne inneres Array haette man 4 mal rosa als Adjektiv
+   // => "des rosaen, rosaen, rosaen, rosaen Huts"
+
+
+SIEHE AUCH
+==========
+
+   /std/thing/description.c, name(), P_NAME, DeclAdj()
 
 23.April 2007 Rumata
diff --git a/doc/props/P_NEEDED_QP b/doc/props/P_NEEDED_QP
index e38f9eb..2df4c78 100644
--- a/doc/props/P_NEEDED_QP
+++ b/doc/props/P_NEEDED_QP
@@ -1,15 +1,31 @@
-NAME:
-    P_NEEDED_QP                   "needed_qp"                   
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_NEEDED_QP
+***********
 
-BESCHREIBUNG:
-     APs, die man fuer den Seherstatus braucht
 
-     Diese Property ist mittlerweile obsolet. Die
-     aktuell geltenden Seher-Anforderungen stehen in
-     /secure/lepmaster.h
+NAME
+====
 
-LETZTE AENDERUNG:
-     2006-09-30, Zook.
\ No newline at end of file
+   P_NEEDED_QP                   "needed_qp"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   APs, die man fuer den Seherstatus braucht
+
+   Diese Property ist mittlerweile obsolet. Die
+   aktuell geltenden Seher-Anforderungen stehen in
+   /secure/lepmaster.h
+
+
+LETZTE AENDERUNG
+================
+
+   2006-09-30, Zook.
diff --git a/doc/props/P_NETDEAD_ENV b/doc/props/P_NETDEAD_ENV
index b2d6317..2e46f5d 100644
--- a/doc/props/P_NETDEAD_ENV
+++ b/doc/props/P_NETDEAD_ENV
@@ -1,24 +1,43 @@
-NAME:
-    P_NETDEAD_ENV                  "netdead_env"
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_NETDEAD_ENV
+*************
 
-BESCHREIBUNG:
-    Diese Property kann in netztoten Spielern abgefragt werden,
-		um herauszufinden, in welchem Raum sie netztot geworden sind.
 
-		Es wird der selbe Wert zurueckgegeben, den die Mudlib benutzen
-		wuerde, um die Spieler beim reconnect wieder an den richtigen
-		ort zu bringen. Das ist normalerweise das Raumobjekt oder der
-		Dateiname des Raums (zum Beispiel so dieser ein clone war).
+NAME
+====
 
-		Bei nicht netztoten Spielern wird 0 zurueckgegeben.
+   P_NETDEAD_ENV                  "netdead_env"
 
-BEMERKUNGEN:
-    Diese Property ist read-only.
 
-SIEHE AUCH:
-    P_NETDEAD_INFO
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property kann in netztoten Spielern abgefragt werden,
+               um herauszufinden, in welchem Raum sie netztot geworden sind.
+
+               Es wird der selbe Wert zurueckgegeben, den die Mudlib benutzen
+               wuerde, um die Spieler beim reconnect wieder an den richtigen
+               ort zu bringen. Das ist normalerweise das Raumobjekt oder der
+               Dateiname des Raums (zum Beispiel so dieser ein clone war).
+
+               Bei nicht netztoten Spielern wird 0 zurueckgegeben.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property ist read-only.
+
+
+SIEHE AUCH
+==========
+
+   P_NETDEAD_INFO
 
 2009-08-04 Rumata
diff --git a/doc/props/P_NETDEAD_INFO b/doc/props/P_NETDEAD_INFO
index 83c36fd..fe96ac6 100644
--- a/doc/props/P_NETDEAD_INFO
+++ b/doc/props/P_NETDEAD_INFO
@@ -1,91 +1,120 @@
-NAME:
-    P_NETDEAD_INFO                "netdead_info"                
 
-DEFINIERT IN:
-    /sys/player.h
+P_NETDEAD_INFO
+**************
 
-BESCHREIBUNG:
-     Wird im Raum X gesetzt und wirkt nur, falls dieser Raum ein '#' im
-     object_name() hat (normale Clones, zB "/room/void#10153018").
-     
-     Bei Einschlafen eines Spielers in diesem Raum werden die Werte aus
-     der Property im Spieler gespeichert (Netztoteninformationen).
 
-     Ist beim Aufwachen des Spielers das Raumobjekt X zerstoert worden, dann
-     wird bei der Blueprint von X per SetProp() die gespeicherte Information
-     gesetzt. Der Rueckgabewert des SetProp wird als Pfad zu einem Ausweich-
-     Aufwach-Raum interpretiert und der Spieler wird in dem Fall dorthin
-     bewegt.
+NAME
+====
 
-BEMERKUNGEN:
-     Zum Clonen von Raeumen sollten Virtual Compiler benutzt werden:
-     Wird in den erzeugten Objektnamen KEIN '#' verwendet, dann ist diese
-     Property nicht sinnvoll und wird nicht verwendet. Ein ordentlicher
-     VC kann Bewegen eines Spielers in dessen alten, nicht mehr existierenden
-     Raum oder einen Ersatzraum beim Aufwachen selbst loesen.
+   P_NETDEAD_INFO                "netdead_info"
 
-BEISPIELE:
-     // #1: geclonter Raum mit Ausweich-Aufwachraum: Klerus-Gilde
-     #include <properties.h>
-     inherit "/std/room";
-     
-     void create() {
-       ::create();
 
-       SetProp(P_NETDEAD_INFO, "/gilden/klerus");
-       SetProp(P_LIGHT, 1);
-     }
-     
-     // #2: komplexerer Beispielraum fuer P_NETDEAD_INFO-Funktionalitaet
-     // Siehe auch: /doc/beispiele/testobjekte/netdead_info_testraum.c
-     #include <properties.h>
-     inherit "/std/room";
+DEFINIERT IN
+============
 
-     void create() {
-       ::create();
+   /sys/player.h
 
-       if (clonep(this_object()))
-         // setze Informationen, die im Netztoten gespeichert werden sollen
-         Set(P_NETDEAD_INFO, random(5));
-       else
-         // Blueprint: hier kann man zu einem Cloneraum gehen
-         AddExit("cloneraum", #'create_room);
 
-       // Set-Method, um die Informationen aus P_NETDEAD_INFO beim Aufwachen
-       // in der Blueprint auswerten zu koennen
-       Set(P_NETDEAD_INFO, #'create_destiny, F_SET_METHOD);
-       SetProp(P_LIGHT, 1);
-     }
-     
-     // Raum entfernen, normalerweise so KEINE GUTE IDEE!
-     void BecomesNetDead(object pl) {
-       call_out(#'remove, 30);
-     }
+BESCHREIBUNG
+============
 
-     // erzeuge einen Cloneraum und bewege den Spieler dahin
-     int create_room(string dir) {
-       object dest = clone_object(object_name(this_object()));
-       this_player()->move(dest, M_NOCHECK);
-       return 1;
-     }
-     
-     // Set-Method fuer P_NETDEAD_INFO: gibt Pfad zurueck
-     // benutze die Informationen aus dem jetzt aufwachenden Netztoten, um
-     // einen alternativen Aufwachraum zu ermitteln, da der Einschlafraum
-     // zerstoert ist
-     string create_destiny(mixed val) {
-       if (intp(val)) {
-         switch (val) {
-           case 0:
-             return "/d/ebene/room/PortVain/po_haf1";
-           case 1:
-             return "/gilden/klerus";
-           case 2:
-             return "/gilden/karate";
-           default:
-         }
-         return "/d/ebene/room/waldweg4";
+   Wird im Raum X gesetzt und wirkt nur, falls dieser Raum ein '#' im
+   object_name() hat (normale Clones, zB "/room/void#10153018").
+
+
+
+   Bei Einschlafen eines Spielers in diesem Raum werden die Werte aus
+   der Property im Spieler gespeichert (Netztoteninformationen).
+
+   Ist beim Aufwachen des Spielers das Raumobjekt X zerstoert worden, dann
+   wird bei der Blueprint von X per SetProp() die gespeicherte Information
+   gesetzt. Der Rueckgabewert des SetProp wird als Pfad zu einem Ausweich-
+   Aufwach-Raum interpretiert und der Spieler wird in dem Fall dorthin
+   bewegt.
+
+
+BEMERKUNGEN
+===========
+
+   Zum Clonen von Raeumen sollten Virtual Compiler benutzt werden:
+   Wird in den erzeugten Objektnamen KEIN '#' verwendet, dann ist diese
+   Property nicht sinnvoll und wird nicht verwendet. Ein ordentlicher
+   VC kann Bewegen eines Spielers in dessen alten, nicht mehr existierenden
+   Raum oder einen Ersatzraum beim Aufwachen selbst loesen.
+
+
+BEISPIELE
+=========
+
+   // #1: geclonter Raum mit Ausweich-Aufwachraum: Klerus-Gilde
+   #include <properties.h>
+   inherit "/std/room";
+
+
+
+   void create() {
+     ::create();
+
+     SetProp(P_NETDEAD_INFO, "/gilden/klerus");
+     SetProp(P_LIGHT, 1);
+   }
+
+
+
+   // #2: komplexerer Beispielraum fuer P_NETDEAD_INFO-Funktionalitaet
+   // Siehe auch: /doc/beispiele/testobjekte/netdead_info_testraum.c
+   #include <properties.h>
+   inherit "/std/room";
+
+   void create() {
+     ::create();
+
+     if (clonep(this_object()))
+       // setze Informationen, die im Netztoten gespeichert werden sollen
+       Set(P_NETDEAD_INFO, random(5));
+     else
+       // Blueprint: hier kann man zu einem Cloneraum gehen
+       AddExit("cloneraum", #'create_room);
+
+     // Set-Method, um die Informationen aus P_NETDEAD_INFO beim Aufwachen
+     // in der Blueprint auswerten zu koennen
+     Set(P_NETDEAD_INFO, #'create_destiny, F_SET_METHOD);
+     SetProp(P_LIGHT, 1);
+   }
+
+
+
+   // Raum entfernen, normalerweise so KEINE GUTE IDEE!
+   void BecomesNetDead(object pl) {
+     call_out(#'remove, 30);
+   }
+
+   // erzeuge einen Cloneraum und bewege den Spieler dahin
+   int create_room(string dir) {
+     object dest = clone_object(object_name(this_object()));
+     this_player()->move(dest, M_NOCHECK);
+     return 1;
+   }
+
+
+
+   // Set-Method fuer P_NETDEAD_INFO: gibt Pfad zurueck
+   // benutze die Informationen aus dem jetzt aufwachenden Netztoten, um
+   // einen alternativen Aufwachraum zu ermitteln, da der Einschlafraum
+   // zerstoert ist
+   string create_destiny(mixed val) {
+     if (intp(val)) {
+       switch (val) {
+         case 0:
+           return "/d/ebene/room/PortVain/po_haf1";
+         case 1:
+           return "/gilden/klerus";
+         case 2:
+           return "/gilden/karate";
+         default:
        }
+       return "/d/ebene/room/waldweg4";
      }
+   }
 
 2. Jan 2012 Gloinson
diff --git a/doc/props/P_NEVERDROP b/doc/props/P_NEVERDROP
index 80364ce..d0cdf41 100644
--- a/doc/props/P_NEVERDROP
+++ b/doc/props/P_NEVERDROP
@@ -1,29 +1,50 @@
-NAME:
-	P_NEVERDROP			"neverdrop"
 
-DEFINIERT IN:
-	/sys/thing/moving.h
+P_NEVERDROP
+***********
 
-BESCHREIBUNG:
-	Objekte, welche diese Property gesetzt haben, werden beim Tod eines
-	Lebewesens nicht automatisch in die Leiche oder in den umgebenden
-	Raum (z.B. bei bei gesetztem P_NOCORPSE) transportiert.
 
-BEMERKUNGEN:
-	Soll das Objekt vom Lebewesen nicht weggelegt werden koennen, so ist
-	die Property P_NODROP zu verwenden.
-	Beide Properties zusammen stellen sicher, dass ein Objekt nicht
-	weitergegeben werden kann.
+NAME
+====
 
-BEISPIELE:
-	Eine dauerhafte Belohnung, die auch beim Tod des Spielers bei ihm
-	verbleiben soll, setzt das so:
-	  SetProp(P_NEVERDROP,1);
-	Sollen auch Reboots ueberstanden werden, ist zusaetzlich
-	P_AUTOLOADOBJ zu setzen.
+   P_NEVERDROP                     "neverdrop"
 
-SIEHE AUCH:
-	P_NODROP, P_NOGET, P_NOCORPSE, P_AUTOLOADOBJ, /std/living/life.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Objekte, welche diese Property gesetzt haben, werden beim Tod eines
+   Lebewesens nicht automatisch in die Leiche oder in den umgebenden
+   Raum (z.B. bei bei gesetztem P_NOCORPSE) transportiert.
+
+
+BEMERKUNGEN
+===========
+
+   Soll das Objekt vom Lebewesen nicht weggelegt werden koennen, so ist
+   die Property P_NODROP zu verwenden.
+   Beide Properties zusammen stellen sicher, dass ein Objekt nicht
+   weitergegeben werden kann.
+
+
+BEISPIELE
+=========
+
+   Eine dauerhafte Belohnung, die auch beim Tod des Spielers bei ihm
+   verbleiben soll, setzt das so:
+     SetProp(P_NEVERDROP,1);
+   Sollen auch Reboots ueberstanden werden, ist zusaetzlich
+   P_AUTOLOADOBJ zu setzen.
+
+
+SIEHE AUCH
+==========
+
+   P_NODROP, P_NOGET, P_NOCORPSE, P_AUTOLOADOBJ, /std/living/life.c
+
 Last modified: Thu Jun 14 22:26:29 2001 by Patryn
diff --git a/doc/props/P_NEVER_CLEAN b/doc/props/P_NEVER_CLEAN
index 5a84820..fc568ff 100644
--- a/doc/props/P_NEVER_CLEAN
+++ b/doc/props/P_NEVER_CLEAN
@@ -1,35 +1,53 @@
-NAME:
-	P_NEVER_CLEAN			" never clean "                   
 
-DEFINIERT IN:
-	/sys/rooms.h
+P_NEVER_CLEAN
+*************
 
-BESCHREIBUNG:
-	Normalerweise wird ein Raum nach 2 Resets zerstoert, wenn er waerend
-	dieser Zeit von keinem Lebewesen betreten wurde und wenn
-	keine REFRESH_NONE- oder REFRESH_DESTRUCT-Objekte existieren, die
-	nicht mehr im Raum vorhanden sind.
-	Mit dieser Property kann man den sogenannten Clean-Up unterbinden.
 
-BEISPIEL:
-	Der folgende Raum wird nicht mehr zerstoert, wenn er einmal geladen
-	wurde:
-	  #include <properties.h>
-	  // #include <rooms.h> ... wird schon von properties.h included!
-	  inherit "std/room";
-	  void create()
-	  { ::create();
-	    SetProp(P_SHORT,"Ein toller Raum");
-	    ...
-	    SetProp(P_NEVER_CLEAN,1);
-	    ...
-	  }
-	Man sollte die Anwendung nicht uebertreiben! Wichtig ist diese
-	Funktion zum Beispiel fuer Raeume, die gleichzeitig Masterobjekte
-	darstellen.
+NAME
+====
 
-SIEHE AUCH:
-	/std/room.c
+   P_NEVER_CLEAN                   " never clean "
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/rooms.h
+
+
+BESCHREIBUNG
+============
+
+   Normalerweise wird ein Raum nach 2 Resets zerstoert, wenn er waerend
+   dieser Zeit von keinem Lebewesen betreten wurde und wenn
+   keine REFRESH_NONE- oder REFRESH_DESTRUCT-Objekte existieren, die
+   nicht mehr im Raum vorhanden sind.
+   Mit dieser Property kann man den sogenannten Clean-Up unterbinden.
+
+
+BEISPIEL
+========
+
+   Der folgende Raum wird nicht mehr zerstoert, wenn er einmal geladen
+   wurde:
+     #include <properties.h>
+     // #include <rooms.h> ... wird schon von properties.h included!
+     inherit "std/room";
+     void create()
+     { ::create();
+       SetProp(P_SHORT,"Ein toller Raum");
+       ...
+       SetProp(P_NEVER_CLEAN,1);
+       ...
+     }
+   Man sollte die Anwendung nicht uebertreiben! Wichtig ist diese
+   Funktion zum Beispiel fuer Raeume, die gleichzeitig Masterobjekte
+   darstellen.
+
+
+SIEHE AUCH
+==========
+
+   /std/room.c
+
 Last modified: Wed Feb  3 00:54:32 1999 by Patryn
diff --git a/doc/props/P_NEWSKILLS b/doc/props/P_NEWSKILLS
index 66ba1ff..7cb61c7 100644
--- a/doc/props/P_NEWSKILLS
+++ b/doc/props/P_NEWSKILLS
@@ -1,20 +1,38 @@
-NAME:
-	P_NEWSKILLS			"newskills"                   
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_NEWSKILLS
+***********
 
-BESCHREIBUNG:
-	In dieser Property sind saemtliche Skills und Spells vermerkt, die
-	das Lebewesen kennt.
 
-BEMERKUNGEN:
-	Man sollte diese Property nicht per Hand veraendern, sondern die
-	Funktionen von "/std/living/skills.c" nutzen.
+NAME
+====
 
-SIEHE AUCH:
-	ModifySkill(), LearnSkill(), UseSkill(), /std/living/skills.c,
-	P_GUILD_SKILLS, P_SB_SPELLS
+   P_NEWSKILLS                     "newskills"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property sind saemtliche Skills und Spells vermerkt, die
+   das Lebewesen kennt.
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte diese Property nicht per Hand veraendern, sondern die
+   Funktionen von "/std/living/skills.c" nutzen.
+
+
+SIEHE AUCH
+==========
+
+   ModifySkill(), LearnSkill(), UseSkill(), /std/living/skills.c,
+   P_GUILD_SKILLS, P_SB_SPELLS
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_NEXT_DEATH_SEQUENCE b/doc/props/P_NEXT_DEATH_SEQUENCE
index 4ae7e7a..6992a32 100644
--- a/doc/props/P_NEXT_DEATH_SEQUENCE
+++ b/doc/props/P_NEXT_DEATH_SEQUENCE
@@ -1,48 +1,68 @@
+
 P_NEXT_DEATH_SEQUENCE
+*********************
 
-NAME:
-     P_NEXT_DEATH_SEQUENCE         "p_lib_next_death_sequence"
 
-DEFINIERT IN:
-     /sys/living/combat.h
+NAME
+====
 
-BESCHREIBUNG:
-     Im Spieler kann damit dessen eigene Todessequenz fuer den naechsten
-     Tod festgelegt werden. Nach einem Tod (egal welche Todessequenz
-     gewaehlt wurde) wird die Property geloescht und muesste neu gesetzt
-     werden.
+   P_NEXT_DEATH_SEQUENCE         "p_lib_next_death_sequence"
 
-     Es gibt folgende gueltige Werte:
-     - string: Pfad zu einer eigenen Todessequenz im gueltigen Format
-     - mixed*  Eine Todessequenz im Format des Todesraumes:
-               ({<int gesamtlaenge>,
-                 ([<int index1>: <string umgebrochene Meldung1>,
-                   <int index2>: <string umgebrochene Meldung2>,
-                   ...])
-               })
-     - mapping In die Standard-Lars-Todessequenz einzufuegende Zeilen:
-               ([<int zeitindex>: <string umgebrochener Text>])
 
-BEMERKUNGEN:
-     Eine Todessequenz eines Gegners, festgelegt ueber
-     P_ENEMY_DEATH_SEQUENCE hat Vorrang vor dieser Property.
+DEFINIERT IN
+============
 
-BEISPIELE:
-     // Pfad zu einer eigenen DSQ
-     SetProp(P_NEXT_DEATH_SEQUENCE,  ".../passende_dsq.txt");
+   /sys/living/combat.h
 
-     // eigene DSQ im Todesraumformat:
-     SetProp(P_NEXT_DEATH_SEQUENCE,
-             ({ 2, ([1: "Der Tod entlaesst dich eilig.\n"])}));
 
-     // Einfuegen einer Meldung in die Standard-Todessequenz
-     SetProp(P_NEXT_DEATH_SEQUENCE,
-             ([5: "Du fuehlst dich etwas daemlich.\n"]));
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-     Tod:            die(L)
-     Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
-                     P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
-     Sonstiges:      P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+   Im Spieler kann damit dessen eigene Todessequenz fuer den naechsten
+   Tod festgelegt werden. Nach einem Tod (egal welche Todessequenz
+   gewaehlt wurde) wird die Property geloescht und muesste neu gesetzt
+   werden.
 
-10. Nov 2011 Gloinson
\ No newline at end of file
+   Es gibt folgende gueltige Werte:
+   - string: Pfad zu einer eigenen Todessequenz im gueltigen Format
+   - mixed*  Eine Todessequenz im Format des Todesraumes:
+             ({<int gesamtlaenge>,
+               ([<int index1>: <string umgebrochene Meldung1>,
+                 <int index2>: <string umgebrochene Meldung2>,
+                 ...])
+             })
+   - mapping In die Standard-Lars-Todessequenz einzufuegende Zeilen:
+             ([<int zeitindex>: <string umgebrochener Text>])
+
+
+BEMERKUNGEN
+===========
+
+   Eine Todessequenz eines Gegners, festgelegt ueber
+   P_ENEMY_DEATH_SEQUENCE hat Vorrang vor dieser Property.
+
+
+BEISPIELE
+=========
+
+   // Pfad zu einer eigenen DSQ
+   SetProp(P_NEXT_DEATH_SEQUENCE,  ".../passende_dsq.txt");
+
+   // eigene DSQ im Todesraumformat:
+   SetProp(P_NEXT_DEATH_SEQUENCE,
+           ({ 2, ([1: "Der Tod entlaesst dich eilig.\n"])}));
+
+   // Einfuegen einer Meldung in die Standard-Todessequenz
+   SetProp(P_NEXT_DEATH_SEQUENCE,
+           ([5: "Du fuehlst dich etwas daemlich.\n"]));
+
+
+SIEHE AUCH
+==========
+
+   Tod:            die(L)
+   Todesmeldungen: P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+                   P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
+   Sonstiges:      P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
+10. Nov 2011 Gloinson
diff --git a/doc/props/P_NEXT_DISABLE_ATTACK b/doc/props/P_NEXT_DISABLE_ATTACK
index 7019ac6..6a9eea3 100644
--- a/doc/props/P_NEXT_DISABLE_ATTACK
+++ b/doc/props/P_NEXT_DISABLE_ATTACK
@@ -1,31 +1,52 @@
-PROPERTY
-  P_NEXT_DISABLE_ATTACK    "next_diable_attack"
 
-DEFINIERT IN 
-  combat.h
+P_NEXT_DISABLE_ATTACK
+*********************
+
+
+PROPERTY
+========
+
+   P_NEXT_DISABLE_ATTACK    "next_diable_attack"
+
+
+DEFINIERT IN
+============
+
+   combat.h
+
 
 BESCHREIBUNG
-  Diese Property gibt an, wann der NPC das naechste Mal paralysiert
-  werden kann. Ueblicherweise wird sie automatisch beim Setzen
-  von P_DISABLE_ATTACK gesetzt. Sie gibt einen Zeitpunkt wie
-  die Funktion time() an, an dem zum ersten Mal wieder Paralyse
-  moeglich ist.
+============
 
-  Will man einen NPC schreiben, der immer paralysierbar ist und nicht erst
-  nach einer gewissen Wartezeit nach der letzten Paralyse, laesst sich dies
-  durch eine Set-Methode auf P_NEXT_DISABLE_ATTACK erreichen:
-    
-  Set(P_NEXT_DISABLE_ATTACK, function int () {return 0;}, F_SET_METHOD);
+   Diese Property gibt an, wann der NPC das naechste Mal paralysiert
+   werden kann. Ueblicherweise wird sie automatisch beim Setzen
+   von P_DISABLE_ATTACK gesetzt. Sie gibt einen Zeitpunkt wie
+   die Funktion time() an, an dem zum ersten Mal wieder Paralyse
+   moeglich ist.
 
-  Diese Set-Methode verhindert das Setzen von P_NEXT_DISABLE_ATTACK mittels
-  eines SetProp-Aufrufes.
+   Will man einen NPC schreiben, der immer paralysierbar ist und nicht erst
+   nach einer gewissen Wartezeit nach der letzten Paralyse, laesst sich dies
+   durch eine Set-Methode auf P_NEXT_DISABLE_ATTACK erreichen:
 
-BEMERKUNGEN:
-  Die Zeit zum Schutz vor erneuter Paralyse existiert absichtlich. Bitte
-  waegt sorgfaeltig ab, bevor ihr diese Property an Gegnern/Spielern
-  manipuliert.
 
-SIEHE AUCH:
-  P_DISABLE_ATTACK
+
+   Set(P_NEXT_DISABLE_ATTACK, function int () {return 0;}, F_SET_METHOD);
+
+   Diese Set-Methode verhindert das Setzen von P_NEXT_DISABLE_ATTACK mittels
+   eines SetProp-Aufrufes.
+
+
+BEMERKUNGEN
+===========
+
+   Die Zeit zum Schutz vor erneuter Paralyse existiert absichtlich. Bitte
+   waegt sorgfaeltig ab, bevor ihr diese Property an Gegnern/Spielern
+   manipuliert.
+
+
+SIEHE AUCH
+==========
+
+   P_DISABLE_ATTACK
 
 21.Jul 2014 Gloinson
diff --git a/doc/props/P_NOBUY b/doc/props/P_NOBUY
index 561bbba..27f6c70 100644
--- a/doc/props/P_NOBUY
+++ b/doc/props/P_NOBUY
@@ -1,10 +1,23 @@
-NAME:
-    P_NOBUY                       "nobuy"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_NOBUY
+*******
 
-BESCHREIBUNG:
-     Wenn diese Property gesetzt ist, wird das Objekt nach einem
-     Verkauf im Laden zerstoert, damit es nicht wieder von einem Spieler
-     gekauft werden kann.
+
+NAME
+====
+
+   P_NOBUY                       "nobuy"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn diese Property gesetzt ist, wird das Objekt nach einem
+   Verkauf im Laden zerstoert, damit es nicht wieder von einem Spieler
+   gekauft werden kann.
diff --git a/doc/props/P_NOCORPSE b/doc/props/P_NOCORPSE
index 799391a..15d5de2 100644
--- a/doc/props/P_NOCORPSE
+++ b/doc/props/P_NOCORPSE
@@ -1,30 +1,51 @@
-NAME:
-	P_NOCORPSE			"nocorpse"
 
-DEFINIERT IN:
-	/sys/properties.h
+P_NOCORPSE
+**********
 
-BESCHREIBUNG:
-	Diese Property ist gesetzt, wenn im Todesfall kein Leichnam
-	automatisch erzeugt werden soll.
 
-BEMERKUNGEN:
-	In diesem Fall wird die Property P_CORPSE ignoriert, mit der man
-	ein spezielles Leichenobjekt angeben kann, sofern nicht die
-	Standardleiche "/std/corpse.c" verwendet werden soll.
-	Da die Moerdermeldungen ueber ebendiese Objekt laufen, werden
-	hierbei auch keine ausgegeben.
+NAME
+====
 
-BEISPIELE:
-	Das Lebewesen soll keine Leiche hinterlassen, weil es zu Staub
-	zerfaellt:
-	  SetProp(P_DIE_MSG," zerfaellt zu Staub!\n");
-	  SetProp(P_NOCORPSE,1)
-	Es wurde auch gleich die Sterbemeldung dementsprechend gesetzt.
+   P_NOCORPSE                      "nocorpse"
 
-SIEHE AUCH:
-	P_CORPSE, P_ZAP_MSG, P_DIE_MSG, P_MURDER_MSG, P_KILL_MSG,
-	P_NEVERDROP, /std/corpse.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property ist gesetzt, wenn im Todesfall kein Leichnam
+   automatisch erzeugt werden soll.
+
+
+BEMERKUNGEN
+===========
+
+   In diesem Fall wird die Property P_CORPSE ignoriert, mit der man
+   ein spezielles Leichenobjekt angeben kann, sofern nicht die
+   Standardleiche "/std/corpse.c" verwendet werden soll.
+   Da die Moerdermeldungen ueber ebendiese Objekt laufen, werden
+   hierbei auch keine ausgegeben.
+
+
+BEISPIELE
+=========
+
+   Das Lebewesen soll keine Leiche hinterlassen, weil es zu Staub
+   zerfaellt:
+     SetProp(P_DIE_MSG," zerfaellt zu Staub!\n");
+     SetProp(P_NOCORPSE,1)
+   Es wurde auch gleich die Sterbemeldung dementsprechend gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   P_CORPSE, P_ZAP_MSG, P_DIE_MSG, P_MURDER_MSG, P_KILL_MSG,
+   P_NEVERDROP, /std/corpse.c
+
 Last modified: Thu Jun 14 22:26:29 2001 by Patryn
diff --git a/doc/props/P_NODRINK_MSG b/doc/props/P_NODRINK_MSG
index 3f847c7..a3407c7 100644
--- a/doc/props/P_NODRINK_MSG
+++ b/doc/props/P_NODRINK_MSG
@@ -1,25 +1,46 @@
-NAME:
-     P_NODRINK_MSG                 "std_food_nodrink_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_NODRINK_MSG
+*************
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn versucht wird, ein Nicht-Getraenk
-     zu trinken. Sobald eine Speise einen Wert in P_FOOD setzt, gilt es als
-     Nicht-Getraenk.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "@WEN1 kann man nicht trinken!"
 
-SIEHE AUCH:
-     P_FOOD, P_DRINK, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_NODRINK_MSG                 "std_food_nodrink_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn versucht wird, ein Nicht-Getraenk
+   zu trinken. Sobald eine Speise einen Wert in P_FOOD setzt, gilt es als
+   Nicht-Getraenk.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "@WEN1 kann man nicht trinken!"
+
+
+SIEHE AUCH
+==========
+
+   P_FOOD, P_DRINK, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_NODROP b/doc/props/P_NODROP
index 37eb5b5..786cdea 100644
--- a/doc/props/P_NODROP
+++ b/doc/props/P_NODROP
@@ -1,39 +1,60 @@
-NAME:
-	P_NODROP			"nodrop"                      
 
-DEFINIERT IN:
-	/sys/thing/moving.h
+P_NODROP
+********
 
-BESCHREIBUNG:
-	Ist diese Property in einem Objekt gesetzt, so kann ein Lebewesen
-	das Objekt nicht weglegen.
-	Als Standardmeldung kommt in diesem Fall beispielsweise:
-	  Du kannst <Objektname> nicht wegwerfen!
-	  Du kannst <Objektname> nicht weggeben.
-	Man kann auch eine alternative Meldung angeben, wobei selbstaendig
-	auf einen korrekten Zeilenumbruch zu achten ist.
 
-BEMERKUNGEN:
-	Soll ein Objekt beim Tod des Lebewesens oder bei Ende eines Spielers
-	nicht in der Leiche bzw. im Raum zurueckgelassen werden, so ist
-	die Property P_NEVERDROP zu nutzen.
-	Beide Properties zusammen stellen sicher, dass ein Objekt nicht
-	weitergegeben werden kann.
+NAME
+====
 
-BEISPIELE:
-	Ein schwer zu erkaempfender Dolch koennte folgendes beinhalten,
-	um nicht weitergegeben werden zu koennen:
-	  SetProp(P_NODROP,1);
-	Informativer jedoch ist eine eigene Meldung:
-	  SetProp(P_NODROP,
-	 "Den Dolch hast Du Dir hart erkaempft, nicht wegwerfen!\n");
+   P_NODROP                        "nodrop"
 
-SIEHE AUCH:
-     Aehnliches: P_NOGET, P_NEVERDROP, P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG,
-                 P_TOO_MANY_MSG, P_NOINSERT_MSG, P_NOLEAVE_MSG,  
-     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
-                 P_WEAR_MSG, P_WIELD_MSG
-     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Ist diese Property in einem Objekt gesetzt, so kann ein Lebewesen
+   das Objekt nicht weglegen.
+   Als Standardmeldung kommt in diesem Fall beispielsweise:
+     Du kannst <Objektname> nicht wegwerfen!
+     Du kannst <Objektname> nicht weggeben.
+   Man kann auch eine alternative Meldung angeben, wobei selbstaendig
+   auf einen korrekten Zeilenumbruch zu achten ist.
+
+
+BEMERKUNGEN
+===========
+
+   Soll ein Objekt beim Tod des Lebewesens oder bei Ende eines Spielers
+   nicht in der Leiche bzw. im Raum zurueckgelassen werden, so ist
+   die Property P_NEVERDROP zu nutzen.
+   Beide Properties zusammen stellen sicher, dass ein Objekt nicht
+   weitergegeben werden kann.
+
+
+BEISPIELE
+=========
+
+   Ein schwer zu erkaempfender Dolch koennte folgendes beinhalten,
+   um nicht weitergegeben werden zu koennen:
+     SetProp(P_NODROP,1);
+   Informativer jedoch ist eine eigene Meldung:
+     SetProp(P_NODROP,
+    "Den Dolch hast Du Dir hart erkaempft, nicht wegwerfen!\n");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_NOGET, P_NEVERDROP, P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG,
+               P_TOO_MANY_MSG, P_NOINSERT_MSG, P_NOLEAVE_MSG,
+   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+               P_WEAR_MSG, P_WIELD_MSG
+   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
 Last modified: Thu Jun 14 22:26:29 2001 by Patryn
diff --git a/doc/props/P_NOFOOD_MSG b/doc/props/P_NOFOOD_MSG
index c367b7c..d195c5e 100644
--- a/doc/props/P_NOFOOD_MSG
+++ b/doc/props/P_NOFOOD_MSG
@@ -1,25 +1,46 @@
-NAME:
-     P_NOFOOD_MSG                  "std_food_nofood_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_NOFOOD_MSG
+************
 
-BESCHREIBUNG:
-     Meldung an den Konsumenten, wenn versucht wird, ein Getraenk zu essen.
-     Sobald eine Speise keinen Wert in P_FOOD und einen Wert in P_DRINK
-     setzt, gilt es als Getraenk.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "@WEN1 kann man nicht essen!"
 
-SIEHE AUCH:
-     P_FOOD, P_DRINK, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_NOFOOD_MSG                  "std_food_nofood_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung an den Konsumenten, wenn versucht wird, ein Getraenk zu essen.
+   Sobald eine Speise keinen Wert in P_FOOD und einen Wert in P_DRINK
+   setzt, gilt es als Getraenk.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "@WEN1 kann man nicht essen!"
+
+
+SIEHE AUCH
+==========
+
+   P_FOOD, P_DRINK, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_NOGET b/doc/props/P_NOGET
index af3ed1d..17a6248 100644
--- a/doc/props/P_NOGET
+++ b/doc/props/P_NOGET
@@ -1,31 +1,49 @@
-NAME:
-	P_NOGET				"noget"
 
-DEFINIERT IN:
-	/sys/thing/moving.h
+P_NOGET
+*******
 
-BESCHREIBUNG:
-	Ist diese Property in einem Objekt gesetzt, so kann ein Lebewesen
-	das Objekt nicht nehmen.
-	Als Standardmeldung kommt in diesem Fall beispielsweise:
-	  Du kannst <Objektname> nicht nehmen.
-	  Du kannst <Objektname> so nirgendwo reinstecken.
-	Man kann auch eine alternative Meldung angeben, wobei selbstaendig
-	auf einen korrekten Zeilenumbruch zu achten ist.
 
-BEISPIELE:
-	Ein Objekt, welches fest im Raum verankert ist, kann natuerlich
-	nicht entfernt werden, z.B. ein angebundenes Seil:
-	  SetProp(P_NOGET,"Das Seil ist fest am Baum verknotet!\n");
-	In einem Kommando zum Losknoten koennte man die Property dann
-	loeschen, um ein Wegnehmen zu ermoeglichen.
+NAME
+====
 
-SIEHE AUCH:
-     Aehnliches: P_NODROP, P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG,
-                 P_TOO_MANY_MSG, P_NOINSERT_MSG, P_NOLEAVE_MSG 
-     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
-                 P_WEAR_MSG, P_WIELD_MSG
-     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+   P_NOGET                         "noget"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Ist diese Property in einem Objekt gesetzt, so kann ein Lebewesen
+   das Objekt nicht nehmen.
+   Als Standardmeldung kommt in diesem Fall beispielsweise:
+     Du kannst <Objektname> nicht nehmen.
+     Du kannst <Objektname> so nirgendwo reinstecken.
+   Man kann auch eine alternative Meldung angeben, wobei selbstaendig
+   auf einen korrekten Zeilenumbruch zu achten ist.
+
+
+BEISPIELE
+=========
+
+   Ein Objekt, welches fest im Raum verankert ist, kann natuerlich
+   nicht entfernt werden, z.B. ein angebundenes Seil:
+     SetProp(P_NOGET,"Das Seil ist fest am Baum verknotet!\n");
+   In einem Kommando zum Losknoten koennte man die Property dann
+   loeschen, um ein Wegnehmen zu ermoeglichen.
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_NODROP, P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG,
+               P_TOO_MANY_MSG, P_NOINSERT_MSG, P_NOLEAVE_MSG
+   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+               P_WEAR_MSG, P_WIELD_MSG
+   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
 Last modified: Thu Jun 14 22:26:29 2001 by Patryn
diff --git a/doc/props/P_NOINSERT_MSG b/doc/props/P_NOINSERT_MSG
index a79994e..de7d8e8 100644
--- a/doc/props/P_NOINSERT_MSG
+++ b/doc/props/P_NOINSERT_MSG
@@ -1,46 +1,65 @@
-NAME:
-    P_NOINSERT_MSG                      "noinsert_msg"                      
 
-DEFINIERT IN:
-    /sys/thing/moving.h
+P_NOINSERT_MSG
+**************
 
-BESCHREIBUNG:
-     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn
-     jemand versucht, ein Objekt in einen Behaelter zu bewegen und der
-     Behaelter dieses im PreventInsert() verhindert.
-     Die Property ist im Zielbehaelter zu setzen.
-     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
-     so wird die Standardmeldung ausgegeben.
-     ("<Objekt> kannst Du dort nicht hineinstecken.")
-     Der String in der Property wird noch durch replace_personal()
-     verarbeitet, das zu bewegende Objekt wird als erstes, der Zielbehaelter
-     als zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
-     umgebrochen.
-     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
-     ganz.
 
-BEISPIELE:
-     1. Ein Kochtopf laesst im PreventInsert nur bestimmte Objekte zu, die zu
-     einer Suppe gehoeren. Fuer eine passende Meldung wird im Topf jetzt die
-     Property gesetzt:
-     SetProp(P_NOINSERT_MSG, "Du kannst @WEN1 nicht in den Kochtopf tun, da"
-	                     " gehoeren doch nur Suppenzutaten rein!");
-     Wenn jemand jetzt versucht, eine Muenze reinzustecken, dann wuerde
-     folgende Meldung erscheinen:
-	Du kannst die Muenze nicht in den Kochtopf tun, da gehoeren doch nur
-	Suppenzutaten rein!
+NAME
+====
 
-     2. Ein Rucksack soll in einer bestimmten Reihenfolge gepackt werden, dazu
-     kann im PreventInsert die Meldung je nach Bedarf gesetzt werden:
-     if (<objekt noch nicht an der Reihe>)
-	SetProp(P_NOINSERT_MSG, "@WEN1 solltest du erst spaeter einpacken.");
-     else if (<objekt schon im Rucksack>)
-	SetProp(P_NOINSERT_MSG, "Aber @WER1 ist doch schon eingepackt!");
-     else ...
+   P_NOINSERT_MSG                      "noinsert_msg"
 
-SIEHE AUCH:
-     Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
-                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
-                 P_WEAR_MSG, P_WIELD_MSG
-     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn
+   jemand versucht, ein Objekt in einen Behaelter zu bewegen und der
+   Behaelter dieses im PreventInsert() verhindert.
+   Die Property ist im Zielbehaelter zu setzen.
+   Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+   so wird die Standardmeldung ausgegeben.
+   ("<Objekt> kannst Du dort nicht hineinstecken.")
+   Der String in der Property wird noch durch replace_personal()
+   verarbeitet, das zu bewegende Objekt wird als erstes, der Zielbehaelter
+   als zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+   umgebrochen.
+   Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+   ganz.
+
+
+BEISPIELE
+=========
+
+   1. Ein Kochtopf laesst im PreventInsert nur bestimmte Objekte zu, die zu
+   einer Suppe gehoeren. Fuer eine passende Meldung wird im Topf jetzt die
+   Property gesetzt:
+   SetProp(P_NOINSERT_MSG, "Du kannst @WEN1 nicht in den Kochtopf tun, da"
+                           " gehoeren doch nur Suppenzutaten rein!");
+   Wenn jemand jetzt versucht, eine Muenze reinzustecken, dann wuerde
+   folgende Meldung erscheinen:
+      Du kannst die Muenze nicht in den Kochtopf tun, da gehoeren doch nur
+      Suppenzutaten rein!
+
+   2. Ein Rucksack soll in einer bestimmten Reihenfolge gepackt werden, dazu
+   kann im PreventInsert die Meldung je nach Bedarf gesetzt werden:
+   if (<objekt noch nicht an der Reihe>)
+      SetProp(P_NOINSERT_MSG, "@WEN1 solltest du erst spaeter einpacken.");
+   else if (<objekt schon im Rucksack>)
+      SetProp(P_NOINSERT_MSG, "Aber @WER1 ist doch schon eingepackt!");
+   else ...
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+               P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+               P_WEAR_MSG, P_WIELD_MSG
+   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
diff --git a/doc/props/P_NOLEAVE_MSG b/doc/props/P_NOLEAVE_MSG
index 0a226dd..d2cd164 100644
--- a/doc/props/P_NOLEAVE_MSG
+++ b/doc/props/P_NOLEAVE_MSG
@@ -1,33 +1,52 @@
-NAME:
-    P_NOLEAVE_MSG                      "noleave_msg"                      
 
-DEFINIERT IN:
-    /sys/thing/moving.h
+P_NOLEAVE_MSG
+*************
 
-BESCHREIBUNG:
-     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn
-     jemand versucht, ein Objekt aus einem Behaelter zu entfernen und der
-     Behaelter dieses im PreventLeave() verhindert.
-     Die Property ist im verhindernden Behaelter zu setzen.
-     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
-     so wird die Standardmeldung ausgegeben.
-     ("Du kannst <Objekt> nicht nehmen.")
-     Der String in der Property wird noch durch replace_personal()
-     verarbeitet, das zu bewegende Objekt wird als erstes, der verhindernde
-     Behaelter als zweites Objekt angegeben. Danach wird der String auf 78
-     Zeichen umgebrochen.
-     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
-     ganz.
 
-BEISPIELE:
-     Nur Bierschuettler sollen eine Bierflasche aus einem Kasten nehmen
-     koennen, neben einer entsprechenden Behandlung im PreventLeave setzt man
-     dazu die Property:
-     SetProp(P_NOLEAVE_MSG, "Nur Bierschuettler duerfen das!");
+NAME
+====
 
-SIEHE AUCH:
-     Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
-                 P_NOINSERT_MSG, P_NODROP, P_NOGET 
-     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
-                 P_WEAR_MSG, P_WIELD_MSG
-     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+   P_NOLEAVE_MSG                      "noleave_msg"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn
+   jemand versucht, ein Objekt aus einem Behaelter zu entfernen und der
+   Behaelter dieses im PreventLeave() verhindert.
+   Die Property ist im verhindernden Behaelter zu setzen.
+   Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+   so wird die Standardmeldung ausgegeben.
+   ("Du kannst <Objekt> nicht nehmen.")
+   Der String in der Property wird noch durch replace_personal()
+   verarbeitet, das zu bewegende Objekt wird als erstes, der verhindernde
+   Behaelter als zweites Objekt angegeben. Danach wird der String auf 78
+   Zeichen umgebrochen.
+   Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+   ganz.
+
+
+BEISPIELE
+=========
+
+   Nur Bierschuettler sollen eine Bierflasche aus einem Kasten nehmen
+   koennen, neben einer entsprechenden Behandlung im PreventLeave setzt man
+   dazu die Property:
+   SetProp(P_NOLEAVE_MSG, "Nur Bierschuettler duerfen das!");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+               P_NOINSERT_MSG, P_NODROP, P_NOGET
+   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+               P_WEAR_MSG, P_WIELD_MSG
+   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
diff --git a/doc/props/P_NOMAGIC b/doc/props/P_NOMAGIC
index bdee7f7..42e51d1 100644
--- a/doc/props/P_NOMAGIC
+++ b/doc/props/P_NOMAGIC
@@ -1,21 +1,42 @@
-NAME:
-    P_NOMAGIC                     "nomagic"                     
 
-DEFINIERT IN:
-    /sys/properties.h
+P_NOMAGIC
+*********
 
-BESCHREIBUNG:
-     Angabe in Prozent, mit welcher Wahrscheinlichkeit Magie fehlschlaegt.
-     
-     Fuer einen Raum ist es eine generelle Aussage, wie wahrscheinlich ein
-     Spell in ihm fehlschlaegt. Bei NPC zeigt es an, wie wahrscheinlich
-     ein auf ihn gesprochener Spell fehlschlaegt.
 
-BEISPIEL:
-     // in einem Raum keine Spells zulassen
-     SetProp(P_NOMAGIC, 100)
+NAME
+====
 
-SIEHE AUCH:
-     Aehnlich:     P_MAGIC_RESISTANCE_OFFSET, SpellDefend
+   P_NOMAGIC                     "nomagic"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Angabe in Prozent, mit welcher Wahrscheinlichkeit Magie fehlschlaegt.
+
+
+
+   Fuer einen Raum ist es eine generelle Aussage, wie wahrscheinlich ein
+   Spell in ihm fehlschlaegt. Bei NPC zeigt es an, wie wahrscheinlich
+   ein auf ihn gesprochener Spell fehlschlaegt.
+
+
+BEISPIEL
+========
+
+   // in einem Raum keine Spells zulassen
+   SetProp(P_NOMAGIC, 100)
+
+
+SIEHE AUCH
+==========
+
+   Aehnlich:     P_MAGIC_RESISTANCE_OFFSET, SpellDefend
 
 29.Dez 2007 Gloinson
diff --git a/doc/props/P_NOSELL b/doc/props/P_NOSELL
index 48b0ddb..6141be3 100644
--- a/doc/props/P_NOSELL
+++ b/doc/props/P_NOSELL
@@ -1,33 +1,50 @@
-NAME:
-    P_NOSELL                      "nosell"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_NOSELL
+********
 
-BESCHREIBUNG:
-     Wenn diese Property gesetzt ist, kann das Objekt nicht in einem
-     Laden verkauft werden.
-     Gibt man in der Property einen String an, wird dieser ausgegeben,
-     ansonsten erfolgt eine Meldung "Du kannst <NAME> nicht verkaufen!"
 
-     Diese Meldung beinhaltet auch den Namen des in P_NAME einge-
-     tragenen Besitzer des Ladens. Ist dies nicht gesetzt, wird per
-     default 'Der Haendler' ausgegeben.
+NAME
+====
 
-BEISPIEL:
-     SetProp(P_NOSELL,"Den Schrott behaeltst Du lieber selber.");
+   P_NOSELL                      "nosell"
 
-     ==> Apu sagt: Den Schrott behaeltst Du lieber selber.
-     ==> Der Haendler sagt: Den Schrott behaeltst Du lieber selber.
 
-     SetProp(P_NOSELL,1);
+DEFINIERT IN
+============
 
-     ==> Apu sagt: Du kannst <name> nicht verkaufen!
-     ==> Der Haendler sagt: Du kannst <name> nicht verkaufen!
+   /sys/properties.h
 
-SIEHE AUCH:
-     P_NOBUY, P_NODROP, P_KEEPER
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Wenn diese Property gesetzt ist, kann das Objekt nicht in einem
+   Laden verkauft werden.
+   Gibt man in der Property einen String an, wird dieser ausgegeben,
+   ansonsten erfolgt eine Meldung "Du kannst <NAME> nicht verkaufen!"
+
+   Diese Meldung beinhaltet auch den Namen des in P_NAME einge-
+   tragenen Besitzer des Ladens. Ist dies nicht gesetzt, wird per
+   default 'Der Haendler' ausgegeben.
+
+
+BEISPIEL
+========
+
+   SetProp(P_NOSELL,"Den Schrott behaeltst Du lieber selber.");
+
+   ==> Apu sagt: Den Schrott behaeltst Du lieber selber.
+   ==> Der Haendler sagt: Den Schrott behaeltst Du lieber selber.
+
+   SetProp(P_NOSELL,1);
+
+   ==> Apu sagt: Du kannst <name> nicht verkaufen!
+   ==> Der Haendler sagt: Du kannst <name> nicht verkaufen!
+
+
+SIEHE AUCH
+==========
+
+   P_NOBUY, P_NODROP, P_KEEPER
+
 03.09.2010, Zesstra
-
diff --git a/doc/props/P_NO_ASCII_ART b/doc/props/P_NO_ASCII_ART
index 9b40cde..3a143a4 100644
--- a/doc/props/P_NO_ASCII_ART
+++ b/doc/props/P_NO_ASCII_ART
@@ -1,20 +1,35 @@
-NAME:
-    P_NO_ASCII_ART                   "no_ascii_art"
+
+P_NO_ASCII_ART
+**************
 
 
-DEFINIERT IN:
-    /sys/player/base.h
+NAME
+====
 
-BESCHREIBUNG:
-    Diese Property kann der Spieler mit dem Befehl "grafik aus" auf
-    1 setzen. Damit zeigt er an, dass er keine ASCII Art sehen moechte.
+   P_NO_ASCII_ART                   "no_ascii_art"
 
-    Wer ASCII-Art einsetzt, sollte an diesen Stellen die Property 
-    abfragen und textliche Umschreibungen oder Alternativloesungen
-    einbauen.
-    
-SIEHE AUCH:
-    grafik
 
-----------------------------------------------------------------------------
-    Letzte Aenderung: 2005-10-18, Zook.   
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property kann der Spieler mit dem Befehl "grafik aus" auf
+   1 setzen. Damit zeigt er an, dass er keine ASCII Art sehen moechte.
+
+   Wer ASCII-Art einsetzt, sollte an diesen Stellen die Property
+   abfragen und textliche Umschreibungen oder Alternativloesungen
+   einbauen.
+
+
+SIEHE AUCH
+==========
+
+   grafik
+
+
+   Letzte Aenderung: 2005-10-18, Zook.
diff --git a/doc/props/P_NO_ATTACK b/doc/props/P_NO_ATTACK
index 0f39180..9ca4c95 100644
--- a/doc/props/P_NO_ATTACK
+++ b/doc/props/P_NO_ATTACK
@@ -1,82 +1,99 @@
+
 P_NO_ATTACK
-
-NAME:
-     P_NO_ATTACK "no_attack"
-
-DEFINIERT IN:
-     <living/combat.h>
-
-BESCHREIBUNG:
-     Wenn ein NPC nicht angreifbar sein soll (weil er zum Beispiel in einer
-     Gilde oder einer Quest Informationen vermittelt oder aehnlichen), sollte
-     man diese Property auf einen Wert ungleich Null setzen. Sie wird immer
-     abgefragt, wenn ermittelt wird, ob ein Lebewesen prinzipiell angreifbar
-     ist. D.h. auch, dass nach Abfragen von P_NO_ATTACK _nicht_ immer ein
-     Kampf gestartet wird und dass man dabei _nicht_ im Kampf sein muss!
-
-     Gibt man hier einen String an (mit einem Satzzeichen und "\n" abge-
-     schlossen), wird dieser bei direkten Angriffen ausgegeben. Bei anderen
-     Datentypen wird eine Defaultmeldung ausgegeben. Die Defaultmeldung
-     lautet: "<Name> laesst sich nicht angreifen!\n"
-
-     Mit direkten Angriffen sind 'toete <name>' und Angriffszauber gemeint
-     (bzw. alles, was living/life::Kill(), spellbook::TryAttackSpell(),
-     spellbook::TryDefaultAttackSpell() und spellbook::FindEnemyVictim()
-     aufruft).
-
-ACHTUNG:
-
-  1) Zum Thema QueryMethoden auf P_NO_ATTACK
-     Grundsaetzlich legt man entweder eine Query-Methode auf P_NO_ATTACK:
-        Set(P_NO_ATTACK, #'my_no_attack, F_QUERY_METHOD);
-     oder definiert eine Funktion _query_no_attack() im NPC.
-
-     Wie muss nun eine solche Funktion aussehen? Z.B.:
-     
-     int|string my_no_attack() {
-       if (!objectp(this_player())) return 0;
-       if (opfer==getuid(this_player()) || this_player()==this_object())
-         return(0);
-       return(1); //nicht angreifbar
-     }
-
-     Diese Funktion macht den NPC nun nur fuer den Spieler 'opfer' angreifbar.
-     Stattdessen kann natuerlich auch jede andere Bedingung genutzt werden.
-
-     Aber warum die zweite Bedingung, this_player()==this_object()?
-     Warum sollte der NPC sich selber angreifen duerfen?
-
-     Das liegt an folgenden 2 Dingen:
-
-     1. Kaempfer kriegen bei eingeschaltetem Fokus Probleme, wenn man das 
-     nicht macht. Das liegt an folgendem: Wenn der NPC angreift, ruft er 
-     natuerlich Defend() im Spieler auf. Dieses schaut nach, ob der Spieler 
-     den Skill SK_MAGICAL_DEFENSE hat. Dieser ist bei Kaempfern das Parieren.
-     Dieses schaut nach, ob der Fokus aktiv ist, wenn ja, wird dem 
-     ge'fokus'te Gegner besonders gut ausgewichen. Zu diesem Zweck wird die 
-     Liste der Feind im Raum erstellt mit PresentEnemies() abgerufen. Dieses 
-     fragt aber in allen (potentiellen) Gegnern P_NO_ATTACK ab und beendet 
-     den Kampf mit allen Gegnern, die nicht angreifbar sind. Bei dieser 
-     Abfrage ist jedoch TP==NPC, weil der ja angreift. Wenn er nun 1 
-     zurueckgibt, wird der Kampf an der Stelle beendet. 
-
-     2. Wenn der NPC den Spieler angreift, wird im Spieler InsertEnemy(NPC)
-     aufgerufen. Auch diesem Fall findet die Abfrage von P_NO_ATTACK statt, 
-     da InsertEnemy() ja erstmal rausfinden muss, ob der Gegner angreifbar 
-     ist, bevor er in die Feindliste eingetragen wird. Da der NPC den 
-     Angriff beginnt, ist TP der NPC. Wenn die Query-Methode auf P_NO_ATTACK
-     hier abbricht, wird der NPC nicht in die Feindliste des Spielers 
-     eingetragen. Dann bekaempft der NPC den Spieler, aber der Spieler nicht
-     den NPC.
+***********
 
 
-  2) P_NO_ATTACK des NPC wird z.B. beim Kampf eines Kaempfers mit dem NPC 
-     pro Kampfrunde um die 10mal abgerufen. Wenn der Kaempfer nur eine 
-     Attacke macht. Wenn er noch Sonderattacken machen, Spells ausfuehrt, 
-     etc. wird das noch mehr. D.h. was auch immer ihr in der Query-Methode 
-     im NPC macht: 
-     Es sollte schnell sein, jeder Tick an Rechenzeit zaehlt hier xfach!
+NAME
+====
+
+   P_NO_ATTACK "no_attack"
 
 
-LETZTE AENDERUNG:
+DEFINIERT IN
+============
+
+   <living/combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Wenn ein NPC nicht angreifbar sein soll (weil er zum Beispiel in einer
+   Gilde oder einer Quest Informationen vermittelt oder aehnlichen), sollte
+   man diese Property auf einen Wert ungleich Null setzen. Sie wird immer
+   abgefragt, wenn ermittelt wird, ob ein Lebewesen prinzipiell angreifbar
+   ist. D.h. auch, dass nach Abfragen von P_NO_ATTACK _nicht_ immer ein
+   Kampf gestartet wird und dass man dabei _nicht_ im Kampf sein muss!
+
+   Gibt man hier einen String an (mit einem Satzzeichen und "\n" abge-
+   schlossen), wird dieser bei direkten Angriffen ausgegeben. Bei anderen
+   Datentypen wird eine Defaultmeldung ausgegeben. Die Defaultmeldung
+   lautet: "<Name> laesst sich nicht angreifen!\n"
+
+   Mit direkten Angriffen sind 'toete <name>' und Angriffszauber gemeint
+   (bzw. alles, was living/life::Kill(), spellbook::TryAttackSpell(),
+   spellbook::TryDefaultAttackSpell() und spellbook::FindEnemyVictim()
+   aufruft).
+
+
+ACHTUNG
+=======
+
+   1) Zum Thema QueryMethoden auf P_NO_ATTACK
+      Grundsaetzlich legt man entweder eine Query-Methode auf P_NO_ATTACK:
+         Set(P_NO_ATTACK, #'my_no_attack, F_QUERY_METHOD);
+      oder definiert eine Funktion _query_no_attack() im NPC.
+
+      Wie muss nun eine solche Funktion aussehen? Z.B.:
+
+
+
+      int|string my_no_attack() {
+        if (!objectp(this_player())) return 0;
+        if (opfer==getuid(this_player()) || this_player()==this_object())
+          return(0);
+        return(1); //nicht angreifbar
+      }
+
+      Diese Funktion macht den NPC nun nur fuer den Spieler 'opfer' angreifbar.
+      Stattdessen kann natuerlich auch jede andere Bedingung genutzt werden.
+
+      Aber warum die zweite Bedingung, this_player()==this_object()?
+      Warum sollte der NPC sich selber angreifen duerfen?
+
+      Das liegt an folgenden 2 Dingen:
+
+      1. Kaempfer kriegen bei eingeschaltetem Fokus Probleme, wenn man das
+      nicht macht. Das liegt an folgendem: Wenn der NPC angreift, ruft er
+      natuerlich Defend() im Spieler auf. Dieses schaut nach, ob der Spieler
+      den Skill SK_MAGICAL_DEFENSE hat. Dieser ist bei Kaempfern das Parieren.
+      Dieses schaut nach, ob der Fokus aktiv ist, wenn ja, wird dem
+      ge'fokus'te Gegner besonders gut ausgewichen. Zu diesem Zweck wird die
+      Liste der Feind im Raum erstellt mit PresentEnemies() abgerufen. Dieses
+      fragt aber in allen (potentiellen) Gegnern P_NO_ATTACK ab und beendet
+      den Kampf mit allen Gegnern, die nicht angreifbar sind. Bei dieser
+      Abfrage ist jedoch TP==NPC, weil der ja angreift. Wenn er nun 1
+      zurueckgibt, wird der Kampf an der Stelle beendet.
+
+      2. Wenn der NPC den Spieler angreift, wird im Spieler InsertEnemy(NPC)
+      aufgerufen. Auch diesem Fall findet die Abfrage von P_NO_ATTACK statt,
+      da InsertEnemy() ja erstmal rausfinden muss, ob der Gegner angreifbar
+      ist, bevor er in die Feindliste eingetragen wird. Da der NPC den
+      Angriff beginnt, ist TP der NPC. Wenn die Query-Methode auf P_NO_ATTACK
+      hier abbricht, wird der NPC nicht in die Feindliste des Spielers
+      eingetragen. Dann bekaempft der NPC den Spieler, aber der Spieler nicht
+      den NPC.
+
+
+   2) P_NO_ATTACK des NPC wird z.B. beim Kampf eines Kaempfers mit dem NPC
+      pro Kampfrunde um die 10mal abgerufen. Wenn der Kaempfer nur eine
+      Attacke macht. Wenn er noch Sonderattacken machen, Spells ausfuehrt,
+      etc. wird das noch mehr. D.h. was auch immer ihr in der Query-Methode
+      im NPC macht:
+      Es sollte schnell sein, jeder Tick an Rechenzeit zaehlt hier xfach!
+
+
+LETZTE AENDERUNG
+================
+
 09.11.2015, Arathorn
diff --git a/doc/props/P_NO_BAD b/doc/props/P_NO_BAD
index 60df1e7..ae2adf2 100644
--- a/doc/props/P_NO_BAD
+++ b/doc/props/P_NO_BAD
@@ -1,23 +1,43 @@
-NAME:
-     P_NO_BAD                      "std_food_no_bad"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_NO_BAD
+********
 
-BESCHREIBUNG:
-     Flag, ob die Speise ewig haltbar ist.
-     0: Speise verdirbt nach der Anzahl Sekunden, die in P_LIFETIME
-        angegeben ist bzw. nach einem Reset
-     1: Speise verdirbt nicht
-     
-     ACHTUNG: Diese Property darf nur in Absprache mit der Balance
-              geaendert werden.
-     
-DEFAULT:
-     Initial ist diese Property auf 0 gesetzt.
 
-SIEHE AUCH:
-     /std/food.c, wiz/food
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_NO_BAD                      "std_food_no_bad"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Flag, ob die Speise ewig haltbar ist.
+   0: Speise verdirbt nach der Anzahl Sekunden, die in P_LIFETIME
+      angegeben ist bzw. nach einem Reset
+   1: Speise verdirbt nicht
+
+
+
+   ACHTUNG: Diese Property darf nur in Absprache mit der Balance
+            geaendert werden.
+
+
+DEFAULT
+=======
+
+   Initial ist diese Property auf 0 gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   /std/food.c, wiz/food
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_NO_GLOBAL_ATTACK b/doc/props/P_NO_GLOBAL_ATTACK
index 01df4e9..962186c 100644
--- a/doc/props/P_NO_GLOBAL_ATTACK
+++ b/doc/props/P_NO_GLOBAL_ATTACK
@@ -1,20 +1,33 @@
+
 P_NO_GLOBAL_ATTACK
+******************
 
-NAME:
-     P_NO_GLOBAL_ATTACK "no_global_attack"
 
-DEFINIERT IN:
-     <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Setzt man diese Property in einem NPC auf einen Wert ungleich 0, so
-     wird der NPC bei einem "toete alle" nicht angegriffen.
+   P_NO_GLOBAL_ATTACK "no_global_attack"
 
-     Damit kann man zB. NPCs, die dem eigenen Schutz dienen (als Folge von
-     Zauberspruechen o.ae.) vor versehentlichen Angriffen schuetzen.
 
-SIEHE AUCH:
-     /std/npc.c, P_FRIEND
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Setzt man diese Property in einem NPC auf einen Wert ungleich 0, so
+   wird der NPC bei einem "toete alle" nicht angegriffen.
+
+   Damit kann man zB. NPCs, die dem eigenen Schutz dienen (als Folge von
+   Zauberspruechen o.ae.) vor versehentlichen Angriffen schuetzen.
+
+
+SIEHE AUCH
+==========
+
+   /std/npc.c, P_FRIEND
+
 Last modified: Sat May 18 15:26:28 1996 by Wargon
diff --git a/doc/props/P_NO_PARA_TRANS b/doc/props/P_NO_PARA_TRANS
index 578c245..677f9c8 100644
--- a/doc/props/P_NO_PARA_TRANS
+++ b/doc/props/P_NO_PARA_TRANS
@@ -1,15 +1,30 @@
-NAME:
-	P_NO_PARA_TRANS				"no_para_trans"
 
-DEFINIERT IN:
-	/sys/properties.h
+P_NO_PARA_TRANS
+***************
 
-BESCHREIBUNG:
-	Wenn in einem Raum diese Property gesetzt ist, darf dort kein
-	Wechsel in oder aus der Paralellwelt erfolgen. Objekte die so
-	einen Wechsel ermoeglichen sind dafuer verantwortlich diese
-	Property abzufragen.
 
-SIEHE AUCH:
-	P_NO_TPORT
+NAME
+====
 
+   P_NO_PARA_TRANS                         "no_para_trans"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn in einem Raum diese Property gesetzt ist, darf dort kein
+   Wechsel in oder aus der Paralellwelt erfolgen. Objekte die so
+   einen Wechsel ermoeglichen sind dafuer verantwortlich diese
+   Property abzufragen.
+
+
+SIEHE AUCH
+==========
+
+   P_NO_TPORT
diff --git a/doc/props/P_NO_PLAYERS b/doc/props/P_NO_PLAYERS
index 062b915..3cc88c1 100644
--- a/doc/props/P_NO_PLAYERS
+++ b/doc/props/P_NO_PLAYERS
@@ -1,37 +1,56 @@
-NAME:
-    P_NO_PLAYERS                     "no_players"                     
 
-DEFINIERT IN:
-    /sys/rooms.h
+P_NO_PLAYERS
+************
 
-BESCHREIBUNG:
-    Wenn in einem Raum die Property P_NO_PLAYERS auf einen Wert != 0 gesetzt
-    ist, kann dieser von Spielern auf normalem Wege nicht mehr betreten werden.
-    Magier und Testspieler(*) koennen den Raum betreten; Spieler muessen mit
-    M_NOCHECK hineinbewegt werden.
 
-    Auf diese Weise koennen Gebiete, die noch nicht offiziell angeschlossen
-    sind, vor 'unbeabsichtigtem' Betreten durch Spieler geschuetzt werden.
+NAME
+====
 
-    Moechte man zu einem schon angeschlossenen Gebiet nachtraeglich eine
-    Parallelwelt einbauen, so sollte P_NO_PLAYERS *dringend* in den
-    Parallelweltraeumen gesetzt werden, bis die Parallelwelt ausdruecklich
-    fuer Spieler freigegeben wird. Andernfalls sind alle Parallelweltraeume,
-    zu denen angeschlossene Normalweltraeume mit gleichem Filenamen existieren,
-    automatisch durch Spieler erreichbar!
+   P_NO_PLAYERS                     "no_players"
 
-    (*) Ausschliesslich Testspieler, die auf den Namen eines existierenden
-    Magiers markiert sind, koennen 'geschuetzte' Raeume betreten.
-    Gildentesties werden wie Spieler behandelt.
 
-ANMERKUNG:
-    Im Gegensatz zu Bewegungen von Livings wird bei der Bewegung von Gegen-
-    staenden P_NO_PLAYERS nur beim Wechsel der Welt ausgewertet, um z.B. zu
-    verhindern, dass Bumerangs in noch nicht angeschlossene Gebiete fliegen.
+DEFINIERT IN
+============
 
-    Moechte man in seinem eigenen Gebiet mit Bumerangs o.ae. testen, muss
-    in diesen P_TESTPLAYER gesetzt sein. Das ist zwar eher ein Missbrauch
-    der Property, aber ein Umkompieren vom Werfer war auf Dauer zu teuer. ;-)
+   /sys/rooms.h
 
-SIEHE AUCH:
-    P_PARA, move
+
+BESCHREIBUNG
+============
+
+   Wenn in einem Raum die Property P_NO_PLAYERS auf einen Wert != 0 gesetzt
+   ist, kann dieser von Spielern auf normalem Wege nicht mehr betreten werden.
+   Magier und Testspieler(*) koennen den Raum betreten; Spieler muessen mit
+   M_NOCHECK hineinbewegt werden.
+
+   Auf diese Weise koennen Gebiete, die noch nicht offiziell angeschlossen
+   sind, vor 'unbeabsichtigtem' Betreten durch Spieler geschuetzt werden.
+
+   Moechte man zu einem schon angeschlossenen Gebiet nachtraeglich eine
+   Parallelwelt einbauen, so sollte P_NO_PLAYERS *dringend* in den
+   Parallelweltraeumen gesetzt werden, bis die Parallelwelt ausdruecklich
+   fuer Spieler freigegeben wird. Andernfalls sind alle Parallelweltraeume,
+   zu denen angeschlossene Normalweltraeume mit gleichem Filenamen existieren,
+   automatisch durch Spieler erreichbar!
+
+   (*) Ausschliesslich Testspieler, die auf den Namen eines existierenden
+   Magiers markiert sind, koennen 'geschuetzte' Raeume betreten.
+   Gildentesties werden wie Spieler behandelt.
+
+
+ANMERKUNG
+=========
+
+   Im Gegensatz zu Bewegungen von Livings wird bei der Bewegung von Gegen-
+   staenden P_NO_PLAYERS nur beim Wechsel der Welt ausgewertet, um z.B. zu
+   verhindern, dass Bumerangs in noch nicht angeschlossene Gebiete fliegen.
+
+   Moechte man in seinem eigenen Gebiet mit Bumerangs o.ae. testen, muss
+   in diesen P_TESTPLAYER gesetzt sein. Das ist zwar eher ein Missbrauch
+   der Property, aber ein Umkompieren vom Werfer war auf Dauer zu teuer. ;-)
+
+
+SIEHE AUCH
+==========
+
+   P_PARA, move
diff --git a/doc/props/P_NO_REGENERATION b/doc/props/P_NO_REGENERATION
index b8dea8c..cc672e3 100644
--- a/doc/props/P_NO_REGENERATION
+++ b/doc/props/P_NO_REGENERATION
@@ -1,34 +1,52 @@
+
 P_NO_REGENERATION
+*****************
 
-NAME:
-     P_NO_REGENERATION    "no_regeneration"
 
-DEFINIERT IN:
-     <living/life.h> und <health.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Durch das Setzen dieser Property kann man verhindern, das ein Lebewesen
-     sich regeneriert.
-     Es gibt sieben moegliche Werte, die man durch verodern kombinieren
-     kann:
-     NO_REG_HP        : es werden keine HP regeneriert
-     NO_REG_BUFFER_HP : es werden beim "tanken" keine HP regeneriert
-     NO_REG_SP        : es werden keine SP regeneriert
-     NO_REG_BUFFER_SP : es werden beim "tanken" keine SP regeneriert
-     NO_REG_ALCOHOL   : der Alkoholspiegel wird nicht gesenkt
-     NO_REG_DRINK     : der Fluessigkeitsspiegel wird nicht gesenkt
-     NO_REG_FOOD      : der Nahrungsspiegel wird nicht gesenkt
-     sowie die Konstante NO_REG, die eine Kombination aller moeglichen
-     Werte darstellt (quasi das groesstmoegliche Uebel ;).
+   P_NO_REGENERATION    "no_regeneration"
 
-BEISPIELE:
-     Dieses Lebewesen heilt nur beim "tanken" in der Kneipe, ansonsten
-     nicht:
-     
-     SetProp( P_NO_REGENERATION, NO_REG_HP|NO_REG_SP );
 
-SIEHE AUCH:
-     /std/living/life.c
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <living/life.h> und <health.h>
+
+
+BESCHREIBUNG
+============
+
+   Durch das Setzen dieser Property kann man verhindern, das ein Lebewesen
+   sich regeneriert.
+   Es gibt sieben moegliche Werte, die man durch verodern kombinieren
+   kann:
+   NO_REG_HP        : es werden keine HP regeneriert
+   NO_REG_BUFFER_HP : es werden beim "tanken" keine HP regeneriert
+   NO_REG_SP        : es werden keine SP regeneriert
+   NO_REG_BUFFER_SP : es werden beim "tanken" keine SP regeneriert
+   NO_REG_ALCOHOL   : der Alkoholspiegel wird nicht gesenkt
+   NO_REG_DRINK     : der Fluessigkeitsspiegel wird nicht gesenkt
+   NO_REG_FOOD      : der Nahrungsspiegel wird nicht gesenkt
+   sowie die Konstante NO_REG, die eine Kombination aller moeglichen
+   Werte darstellt (quasi das groesstmoegliche Uebel ;).
+
+
+BEISPIELE
+=========
+
+   Dieses Lebewesen heilt nur beim "tanken" in der Kneipe, ansonsten
+   nicht:
+
+
+
+   SetProp( P_NO_REGENERATION, NO_REG_HP|NO_REG_SP );
+
+
+SIEHE AUCH
+==========
+
+   /std/living/life.c
+
 Last modified: 14-05-2001 by Mupfel
diff --git a/doc/props/P_NO_SCORE b/doc/props/P_NO_SCORE
index 6c4a2d2..49cfee5 100644
--- a/doc/props/P_NO_SCORE
+++ b/doc/props/P_NO_SCORE
@@ -1,51 +1,73 @@
-NAME:
-     P_NO_SCORE               "no_score"
 
-DEFINIERT IN:
-     /secure/scoremaster.h
+P_NO_SCORE
+**********
 
-BESCHREIBUNG:
-     Die Property stellt ein Flag innerhalb von Lebewesen dar, welches
-     standardmaessig nicht gesetzt ist. In diesem Fall werden
-     Erstkillstufenpunkte an den Angreifer vergeben, sofern er ein Opfer
-     toetet.
 
-     Innerhalb eines Teams koennen Erstkillstufenpunkte auch an
-     Mitglieder vergeben werden, die das Lebewesen nicht selbst getoetet
-     haben. Voraussetzung hierfuer ist, dass derjenige, der den letzten
-     Schlag ausfuehrte, den Kill schon hat. Danach werden Mitglieder des
-     Teams gesucht, welche den Kill noch nicht haben und in der Formation
-     moeglichst weit vorne stehen.
+NAME
+====
 
-     Mit der gesetzten Property P_NO_SCORE im Opfer erreicht man nun,
-     dass diese Gutschrift fuer den/die Angreifer unterbunden wird.
+   P_NO_SCORE               "no_score"
 
-BEISPIEL:
-     Folgendermassen unterbindet man die Vergabe von
-     Erstkillstufenpunkten fuer den Tod eines NPC's:
 
-       include "/secure/scoremaster.h"
-       inherit "std/npc";
-       void create() {
-         ::create();
-         ...
-         SetProp(P_NO_SCORE,1);
-       }
+DEFINIERT IN
+============
 
-     Damit kann P_XP einen Wert haben, der eigentlich zum automatischen
-     Eintragen von Erstkillstufenpunkten fuer ein Lebewesen fuehrt, und
-     trotzdem wird dieser Eintrag nicht vorgenommen.
-     Sinnvoll ist dies insbesondere bei Lebewesen, die nicht jeder
-     Spieler erreichen kann (man moechte doch eine gewisse
-     Chancengleichheit fuer das Erreichen von Stufenpunkten bieten).
+   /secure/scoremaster.h
 
-BEMERKUNGEN:
-     Auch die Vergabe von Erfahrungspunkten kann explizit unterbunden
-     werden. Hierfuer gibt es die aehnlich geartete Property P_NO_XP.
 
-SIEHE AUCH:
-     Funktionen:  GiveKillScore(), do_damage()
-     Verwandt:    P_NO_XP
-     Sonstiges:   P_XP
+BESCHREIBUNG
+============
+
+   Die Property stellt ein Flag innerhalb von Lebewesen dar, welches
+   standardmaessig nicht gesetzt ist. In diesem Fall werden
+   Erstkillstufenpunkte an den Angreifer vergeben, sofern er ein Opfer
+   toetet.
+
+   Innerhalb eines Teams koennen Erstkillstufenpunkte auch an
+   Mitglieder vergeben werden, die das Lebewesen nicht selbst getoetet
+   haben. Voraussetzung hierfuer ist, dass derjenige, der den letzten
+   Schlag ausfuehrte, den Kill schon hat. Danach werden Mitglieder des
+   Teams gesucht, welche den Kill noch nicht haben und in der Formation
+   moeglichst weit vorne stehen.
+
+   Mit der gesetzten Property P_NO_SCORE im Opfer erreicht man nun,
+   dass diese Gutschrift fuer den/die Angreifer unterbunden wird.
+
+
+BEISPIEL
+========
+
+   Folgendermassen unterbindet man die Vergabe von
+   Erstkillstufenpunkten fuer den Tod eines NPC's:
+
+     include "/secure/scoremaster.h"
+     inherit "std/npc";
+     void create() {
+       ::create();
+       ...
+       SetProp(P_NO_SCORE,1);
+     }
+
+   Damit kann P_XP einen Wert haben, der eigentlich zum automatischen
+   Eintragen von Erstkillstufenpunkten fuer ein Lebewesen fuehrt, und
+   trotzdem wird dieser Eintrag nicht vorgenommen.
+   Sinnvoll ist dies insbesondere bei Lebewesen, die nicht jeder
+   Spieler erreichen kann (man moechte doch eine gewisse
+   Chancengleichheit fuer das Erreichen von Stufenpunkten bieten).
+
+
+BEMERKUNGEN
+===========
+
+   Auch die Vergabe von Erfahrungspunkten kann explizit unterbunden
+   werden. Hierfuer gibt es die aehnlich geartete Property P_NO_XP.
+
+
+SIEHE AUCH
+==========
+
+   Funktionen:  GiveKillScore(), do_damage()
+   Verwandt:    P_NO_XP
+   Sonstiges:   P_XP
 
 14.Feb 2007 Gloinson
diff --git a/doc/props/P_NO_STD_DRINK b/doc/props/P_NO_STD_DRINK
index a91e92d..f8c2f33 100644
--- a/doc/props/P_NO_STD_DRINK
+++ b/doc/props/P_NO_STD_DRINK
@@ -1,19 +1,37 @@
-NAME:
-	P_NO_STD_DRINK			"no_std_drink"
 
-DEFINIERT IN:
-	/sys/pub.h
+P_NO_STD_DRINK
+**************
 
-BESCHREIBUNG:
-        Durch setzen dieser Property in einer Kneipe sorgt man dafuer, dass 
-        "Standard-Drinks" (z.B. Gluehwein im Dezember) nicht in das Menue
-        der Kneipe aufgenommen werden.
 
-BEMERKUNGEN:
-        Keine.
+NAME
+====
 
-SIEHE AUCH:
-	/std/room/pub.c
+   P_NO_STD_DRINK                  "no_std_drink"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/pub.h
+
+
+BESCHREIBUNG
+============
+
+   Durch setzen dieser Property in einer Kneipe sorgt man dafuer, dass
+   "Standard-Drinks" (z.B. Gluehwein im Dezember) nicht in das Menue
+   der Kneipe aufgenommen werden.
+
+
+BEMERKUNGEN
+===========
+
+   Keine.
+
+
+SIEHE AUCH
+==========
+
+   /std/room/pub.c
+
 Last modified: Sat Mar 04 22:42:00 2000 by Paracelsus
diff --git a/doc/props/P_NO_TPORT b/doc/props/P_NO_TPORT
index 40350e5..1c6de77 100644
--- a/doc/props/P_NO_TPORT
+++ b/doc/props/P_NO_TPORT
@@ -1,15 +1,30 @@
-NAME:
-    P_NO_TPORT                    "tport"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_NO_TPORT
+**********
 
-BESCHREIBUNG:
-     Kann folgende Werte annnehmen (definiert in moving.h):
-     NO_TPORT_IN	= Man kann nicht in den Raum hinein teleportieren.
-     NO_TPORT_OUT = Man kann nicht aus dem Raum hinaus teleportieren.
-     NO_TPORT	= Weder noch.
 
-SIEHE AUCH:
-	P_NO_PARA_TRANS
+NAME
+====
 
+   P_NO_TPORT                    "tport"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Kann folgende Werte annnehmen (definiert in moving.h):
+   NO_TPORT_IN        = Man kann nicht in den Raum hinein teleportieren.
+   NO_TPORT_OUT = Man kann nicht aus dem Raum hinaus teleportieren.
+   NO_TPORT   = Weder noch.
+
+
+SIEHE AUCH
+==========
+
+   P_NO_PARA_TRANS
diff --git a/doc/props/P_NO_TRAVELING b/doc/props/P_NO_TRAVELING
index 61425bc..cd1073a 100644
--- a/doc/props/P_NO_TRAVELING
+++ b/doc/props/P_NO_TRAVELING
@@ -1,25 +1,48 @@
-NAME:
-    P_NO_TRAVELING                   "no_traveling"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_NO_TRAVELING
+**************
 
-BESCHREIBUNG:
-    Hier steht der allgemeine reise-Befehl nicht zur Verfuegung.
 
-BEMERKUNGEN:
-    P_NO_TRAVELING wird in Transportern gesetzt wenn Spieler ihn 
-    nicht mehr 'automatisch' mittels des 'reise'-Befehls betreten
-    koennen sollen.
+NAME
+====
 
-    Sie bekommen in dem Transporter und in den Zielraeumen auch 
-    keinerlei Hinweise darauf, wohin sie evtl. reisen koennten.
-    
-    Standardmaessig ist P_NO_TRAVELING natuerlich 0.
+   P_NO_TRAVELING                   "no_traveling"
 
-SIEHE AUCH:
-    reise
 
-LETZTER AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
-    
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /sys/transport.h
+
+
+BESCHREIBUNG
+============
+
+   Hier steht der allgemeine reise-Befehl nicht zur Verfuegung.
+
+
+BEMERKUNGEN
+===========
+
+   P_NO_TRAVELING wird in Transportern gesetzt wenn Spieler ihn
+   nicht mehr 'automatisch' mittels des 'reise'-Befehls betreten
+   koennen sollen.
+
+   Sie bekommen in dem Transporter und in den Zielraeumen auch
+   keinerlei Hinweise darauf, wohin sie evtl. reisen koennten.
+
+
+
+   Standardmaessig ist P_NO_TRAVELING natuerlich 0.
+
+
+SIEHE AUCH
+==========
+
+   reise
+
+
+LETZTER AENDERUNG
+=================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_NO_XP b/doc/props/P_NO_XP
index bb09b2a..b16c4ab 100644
--- a/doc/props/P_NO_XP
+++ b/doc/props/P_NO_XP
@@ -1,43 +1,65 @@
-NAME:
-     P_NO_XP                    "no_xp"
 
-DEFINIERT IN:
-     /sys/living/life.h
+P_NO_XP
+*******
 
-BESCHREIBUNG:
-     Im Normalfall bekommt man im Kampf gegen einen Gegner fuer Treffer
-     und beim Toeten eine XP-Gutschrift.
 
-     Ist P_NO_XP gesetzt, so erhaelt man keinerlei XP-Gutschriften
-     fuer den Kampf oder den Tod des NPCs.
+NAME
+====
 
-BEISPIEL:
-     Folgendermassen unterbindet man die Vergabe von Erfahrungspunkte
-     fuer den Angriff eines NPC's:
+   P_NO_XP                    "no_xp"
 
-       include "/sys/living/life.h"
-       inherit "std/npc";
-       void create() {
-         ::create();
-         ...
-         SetProp(P_NO_XP,1);
-       }
 
-     Damit kann P_XP trotzdem einen Wert im NPC haben, der
-     Erstkillstufenpunkte fuer Lebewesen automatisch eintraegt!
+DEFINIERT IN
+============
 
-     Auch fuer das kurzzeitige Unterbinden der Vergabe von
-     Erfahrungspunkten ist diese Property sinnvoller, als P_XP im NPC
-     auf 0 zu setzen.
+   /sys/living/life.h
 
-BEMERKUNGEN:
-     Auch die Vergabe von Erstkillstufenpunkten kann explizit unterbunden
-     werden. Hierfuer gibt es die aehnlich geartete Property P_NO_SCORE.
 
-SIEHE AUCH:
-     Funktionen:  AddExp(), DistributeExp(), do_damage()
-     Properties:  P_XP, P_LAST_XP
-     Verwandt:    P_NO_SCORE
-     Sonstiges:   P_TOTAL_WC, create_default_npc()
+BESCHREIBUNG
+============
+
+   Im Normalfall bekommt man im Kampf gegen einen Gegner fuer Treffer
+   und beim Toeten eine XP-Gutschrift.
+
+   Ist P_NO_XP gesetzt, so erhaelt man keinerlei XP-Gutschriften
+   fuer den Kampf oder den Tod des NPCs.
+
+
+BEISPIEL
+========
+
+   Folgendermassen unterbindet man die Vergabe von Erfahrungspunkte
+   fuer den Angriff eines NPC's:
+
+     include "/sys/living/life.h"
+     inherit "std/npc";
+     void create() {
+       ::create();
+       ...
+       SetProp(P_NO_XP,1);
+     }
+
+   Damit kann P_XP trotzdem einen Wert im NPC haben, der
+   Erstkillstufenpunkte fuer Lebewesen automatisch eintraegt!
+
+   Auch fuer das kurzzeitige Unterbinden der Vergabe von
+   Erfahrungspunkten ist diese Property sinnvoller, als P_XP im NPC
+   auf 0 zu setzen.
+
+
+BEMERKUNGEN
+===========
+
+   Auch die Vergabe von Erstkillstufenpunkten kann explizit unterbunden
+   werden. Hierfuer gibt es die aehnlich geartete Property P_NO_SCORE.
+
+
+SIEHE AUCH
+==========
+
+   Funktionen:  AddExp(), DistributeExp(), do_damage()
+   Properties:  P_XP, P_LAST_XP
+   Verwandt:    P_NO_SCORE
+   Sonstiges:   P_TOTAL_WC, create_default_npc()
 
 14.Feb 2007 Gloinson
diff --git a/doc/props/P_NPC b/doc/props/P_NPC
index 69d1270..60651d8 100644
--- a/doc/props/P_NPC
+++ b/doc/props/P_NPC
@@ -1,8 +1,21 @@
-NAME:
-    P_NPC                         "is_npc"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_NPC
+*****
 
-BESCHREIBUNG:
-     Gesetzt bei Monstern.
+
+NAME
+====
+
+   P_NPC                         "is_npc"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt bei Monstern.
diff --git a/doc/props/P_NPC_FASTHEAL b/doc/props/P_NPC_FASTHEAL
index 3f588b9..3c358ef 100644
--- a/doc/props/P_NPC_FASTHEAL
+++ b/doc/props/P_NPC_FASTHEAL
@@ -1,21 +1,39 @@
-NAME:
-	P_NPC_FASTHEAL			"npc_fastheal"
 
-DEFINIERT IN:
-	/sys/pub.h
+P_NPC_FASTHEAL
+**************
 
-BESCHREIBUNG:
-        Durch setzen dieser Property in einer Kneipe sorgt man dafuer, dass 
-        bei NPCs, die dort "tanken", die Lebens- und Konzentrationspunkte
-        direkt erhoeht werden und nicht, wie bei ungesetzter Property, in
-        die jew. Buffer geschrieben werden.
 
-BEMERKUNGEN:
-        Die Benutzung dieser Property sollte nicht unbedingt zum Standard
-        werden.
+NAME
+====
 
-SIEHE AUCH:
-	/std/room/pub.c
+   P_NPC_FASTHEAL                  "npc_fastheal"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/pub.h
+
+
+BESCHREIBUNG
+============
+
+   Durch setzen dieser Property in einer Kneipe sorgt man dafuer, dass
+   bei NPCs, die dort "tanken", die Lebens- und Konzentrationspunkte
+   direkt erhoeht werden und nicht, wie bei ungesetzter Property, in
+   die jew. Buffer geschrieben werden.
+
+
+BEMERKUNGEN
+===========
+
+   Die Benutzung dieser Property sollte nicht unbedingt zum Standard
+   werden.
+
+
+SIEHE AUCH
+==========
+
+   /std/room/pub.c
+
 Last modified: Wed Sep 29 13:58:00 1999 by Paracelsus
diff --git a/doc/props/P_NR_HANDS b/doc/props/P_NR_HANDS
index b0827a9..a3bf299 100644
--- a/doc/props/P_NR_HANDS
+++ b/doc/props/P_NR_HANDS
@@ -1,31 +1,45 @@
+
 P_NR_HANDS
-NAME:
-     P_NR_HANDS "nr_hands"
+**********
 
-DEFINIERT IN:
-     <weapon.h>
 
-BESCHREIBUNG:
-     Wieviele Haende muss man frei haben, um die Waffe zuecken oder den
-     Schild tragen zu koennen?
-     Dieser Wert muss mindestens 1 betragen!
+NAME
+====
 
-     Sollen Spieler die Waffe benutzen koennen, so sind hier nur die Werte 1
-     und 2 moeglich. Falls die Waffe nur von Monstern benutzbar sein soll,
-     kann man hier auch hoehere Werte eintragen (dazu muss man beim Monster
-     P_MAX_HANDS entsprechend hoch setzen). Als Beispiel sei hier nur das
-     vierhaendige Schwert aus dem Friedhof genannt.
+   P_NR_HANDS "nr_hands"
 
-     Defaultmaessig sind alle Waffen Zweihaender.
 
-     Diese Property kann auch bei Zaubern benutzt werden, bei denen man eine
-     oder mehrere Haende frei haben muss.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     P_HANDS, P_HANDS_USED_BY
-     P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
-     UseHands, FreeHands
-     /std/weapon.c, /std/spellbook.c
+   <weapon.h>
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   Wieviele Haende muss man frei haben, um die Waffe zuecken oder den
+   Schild tragen zu koennen?
+   Dieser Wert muss mindestens 1 betragen!
+
+   Sollen Spieler die Waffe benutzen koennen, so sind hier nur die Werte 1
+   und 2 moeglich. Falls die Waffe nur von Monstern benutzbar sein soll,
+   kann man hier auch hoehere Werte eintragen (dazu muss man beim Monster
+   P_MAX_HANDS entsprechend hoch setzen). Als Beispiel sei hier nur das
+   vierhaendige Schwert aus dem Friedhof genannt.
+
+   Defaultmaessig sind alle Waffen Zweihaender.
+
+   Diese Property kann auch bei Zaubern benutzt werden, bei denen man eine
+   oder mehrere Haende frei haben muss.
+
+
+SIEHE AUCH
+==========
+
+   P_HANDS, P_HANDS_USED_BY
+   P_MAX_HANDS, P_USED_HANDS, P_FREE_HANDS
+   UseHands, FreeHands
+   /std/weapon.c, /std/spellbook.c
+
 Last modified: Sun May 19 15:00:02 1996 by Wargon
diff --git a/doc/props/P_ORAKEL b/doc/props/P_ORAKEL
index cf383da..773a80d 100644
--- a/doc/props/P_ORAKEL
+++ b/doc/props/P_ORAKEL
@@ -1,9 +1,22 @@
-NAME:
-    P_ORAKEL                      "orakel"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_ORAKEL
+********
 
-BESCHREIBUNG:
-     Wenn diese Property gesetzt ist, kann der Wanderer in diesen
-     Raum hinein.
+
+NAME
+====
+
+   P_ORAKEL                      "orakel"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn diese Property gesetzt ist, kann der Wanderer in diesen
+   Raum hinein.
diff --git a/doc/props/P_ORIG_FILE_NAME b/doc/props/P_ORIG_FILE_NAME
index 2064360..53243c2 100644
--- a/doc/props/P_ORIG_FILE_NAME
+++ b/doc/props/P_ORIG_FILE_NAME
@@ -1,8 +1,21 @@
-NAME:
-    P_ORIG_FILE_NAME                "original_object_name"               
 
-DEFINIERT IN:
-    /sys/properties.h
+P_ORIG_FILE_NAME
+****************
 
-BESCHREIBUNG:
-     In einer Leiche der Filename des Gestorbenen.
+
+NAME
+====
+
+   P_ORIG_FILE_NAME                "original_object_name"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   In einer Leiche der Filename des Gestorbenen.
diff --git a/doc/props/P_ORIG_NAME b/doc/props/P_ORIG_NAME
index 96a5d73..e44a06d 100644
--- a/doc/props/P_ORIG_NAME
+++ b/doc/props/P_ORIG_NAME
@@ -1,8 +1,21 @@
-NAME:
-    P_ORIG_NAME                   "original_name"               
 
-DEFINIERT IN:
-    /sys/properties.h
+P_ORIG_NAME
+***********
 
-BESCHREIBUNG:
-     In einer Leiche der Name des Gestorbenen. (name(RAW))
+
+NAME
+====
+
+   P_ORIG_NAME                   "original_name"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   In einer Leiche der Name des Gestorbenen. (name(RAW))
diff --git a/doc/props/P_PARA b/doc/props/P_PARA
index 87cc92b..0a7f416 100644
--- a/doc/props/P_PARA
+++ b/doc/props/P_PARA
@@ -1,54 +1,73 @@
-NAME:
-    P_PARA                        "para"                        
 
-DEFINIERT IN:
-    /sys/properties.h
+P_PARA
+******
 
-BESCHREIBUNG:
-    Nummer der Parallelwelt, in der sich ein Spieler befindet.
 
-    Ist die Property P_PARA auf Null gesetzt, so befindet sich der Spieler in
-    der 'Normalwelt'. Gibt es bei einer Bewegung dieses Spielers mehrere
-    moegliche Zielraeume mit identischem Namen aber unterschiedlichen Endungen
-    'name.c', 'name^1.c', 'name^2.c' etc., so wird der Spieler in den Raum
-    'name.c' bewegt. 
+NAME
+====
 
-    Wird die Property P_PARA auf einen Wert n>0 gesetzt, so landet der Spieler
-    bei einer Bewegung im Raum 'name^n.c'. Ist kein Raum mit entsprechender
-    Endung vorhanden, wird der Spieler stattdessen in den Normalweltraum
-    bewegt.
+   P_PARA                        "para"
 
-    Diese Prop kann auch in einem Virtual Compiler gesetzt werden. In diesem
-    Fall schraenkt sie die Dimensionen ein, in denen der VC Objekte erzeugt.
-    Die Prop kann eine einzelne Ziffer (Int) oder ein Array von Ints 
-    aufnehmen, dann ist der VC fuer alle angegeben Dimensionen zustaendig. 
-    Ein leeres Array erlaubt gar keine Para-Objekte.
 
-ANMERKUNG:
-    Die Endung '^0' kennzeichnet _nicht_ die Normalwelt. So lange kein Ausgang
-    explizit auf den Raum 'name^0.c' verweist, wird kein Spieler den Raum
-    betreten koennen. Deshalb kann man die Endung '^0' z.B. dazu benutzen, um
-    eigene Standardraeume fuer ein Gebiet zu schreiben, die dann sowohl von
-    den Normal- als auch von den Parallelweltraeumen inheritet werden.
+DEFINIERT IN
+============
 
-    Raeume mit Endungen '^n.c', bei denen 'n' keine positive ganze Zahl ist,
-    werden nicht beachtet.
+   /sys/properties.h
 
-    Fuer die Entscheidung, in welchem Raum ein Spieler in Abhaengigkeit von
-    P_PARA landet, ist die Funktion move() zustaendig. Als Magier muss man sich
-    darum nicht gesondert kuemmern. Das heisst aber auch, dass beim Anschluss
-    eines Normalweltraumes automatisch alle in dem Verzeichnis mit gleichem
-    Namen vorhandenen Parallelweltraeume mit angeschlossen werden.
 
-    Sollen einzelne Parallelweltraeume noch nicht angeschlossen werden, so muss
-    in ihnen die Property P_NO_PLAYERS gesetzt werden. Diese Raeume sind dann
-    nur durch Magier und Testspieler zu betreten (und zu testen).
+BESCHREIBUNG
+============
 
-    In Paraweltraeumen liefert P_PARA 'n' zurueck.
-    Man kann also z.B. in NPCs einfach ueber environment()->QueryProp(P_PARA) 
-    abfragen, in welcher Parawelt sich dieser gerade befindet.
+   Nummer der Parallelwelt, in der sich ein Spieler befindet.
 
-SIEHE AUCH:
-    P_NO_PLAYERS, move, pararaeume
-    
+   Ist die Property P_PARA auf Null gesetzt, so befindet sich der Spieler in
+   der 'Normalwelt'. Gibt es bei einer Bewegung dieses Spielers mehrere
+   moegliche Zielraeume mit identischem Namen aber unterschiedlichen Endungen
+   'name.c', 'name^1.c', 'name^2.c' etc., so wird der Spieler in den Raum
+   'name.c' bewegt.
+
+   Wird die Property P_PARA auf einen Wert n>0 gesetzt, so landet der Spieler
+   bei einer Bewegung im Raum 'name^n.c'. Ist kein Raum mit entsprechender
+   Endung vorhanden, wird der Spieler stattdessen in den Normalweltraum
+   bewegt.
+
+   Diese Prop kann auch in einem Virtual Compiler gesetzt werden. In diesem
+   Fall schraenkt sie die Dimensionen ein, in denen der VC Objekte erzeugt.
+   Die Prop kann eine einzelne Ziffer (Int) oder ein Array von Ints
+   aufnehmen, dann ist der VC fuer alle angegeben Dimensionen zustaendig.
+   Ein leeres Array erlaubt gar keine Para-Objekte.
+
+
+ANMERKUNG
+=========
+
+   Die Endung '^0' kennzeichnet _nicht_ die Normalwelt. So lange kein Ausgang
+   explizit auf den Raum 'name^0.c' verweist, wird kein Spieler den Raum
+   betreten koennen. Deshalb kann man die Endung '^0' z.B. dazu benutzen, um
+   eigene Standardraeume fuer ein Gebiet zu schreiben, die dann sowohl von
+   den Normal- als auch von den Parallelweltraeumen inheritet werden.
+
+   Raeume mit Endungen '^n.c', bei denen 'n' keine positive ganze Zahl ist,
+   werden nicht beachtet.
+
+   Fuer die Entscheidung, in welchem Raum ein Spieler in Abhaengigkeit von
+   P_PARA landet, ist die Funktion move() zustaendig. Als Magier muss man sich
+   darum nicht gesondert kuemmern. Das heisst aber auch, dass beim Anschluss
+   eines Normalweltraumes automatisch alle in dem Verzeichnis mit gleichem
+   Namen vorhandenen Parallelweltraeume mit angeschlossen werden.
+
+   Sollen einzelne Parallelweltraeume noch nicht angeschlossen werden, so muss
+   in ihnen die Property P_NO_PLAYERS gesetzt werden. Diese Raeume sind dann
+   nur durch Magier und Testspieler zu betreten (und zu testen).
+
+   In Paraweltraeumen liefert P_PARA 'n' zurueck.
+   Man kann also z.B. in NPCs einfach ueber environment()->QueryProp(P_PARA)
+   abfragen, in welcher Parawelt sich dieser gerade befindet.
+
+
+SIEHE AUCH
+==========
+
+   P_NO_PLAYERS, move, pararaeume
+
 25.Jan 2015 Gloinson
diff --git a/doc/props/P_PARRY b/doc/props/P_PARRY
index 03550df..40ddecd 100644
--- a/doc/props/P_PARRY
+++ b/doc/props/P_PARRY
@@ -1,31 +1,47 @@
+
 P_PARRY
+*******
 
-NAME:
-     P_PARRY "parry"
 
-DEFINIERT IN:
-     <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property legt fest, inwiefern eine Waffe als Parierwaffe
-     genutzt werden kann. Moegliche Werte:
+   P_PARRY "parry"
 
-         PARRY_NOT     Eine reine Angriffswaffe ohne Parierfunktion.
 
-         PARRY_TOO     Eine kombinierte Angriffs- und Parierwaffe.
+DEFINIERT IN
+============
 
-         PARRY_ONLY    Eine reine Parierwaffe. Diese kann zusaetzlich
-                       zu einer normalen Waffe gezueckt werden.
+   <combat.h>
 
-     Man sollte nur die in <combat.h> definierten Konstanten verwenden.
 
-BEMERKUNGEN:
-     Durch diese Propertie laesst sich _kein_ Parade-Bonus fuer Trves 
-     setzen! Alle Gilden haben etwas davon. Vor Verwendung bitte mit
-     der Objekt-Balance absprechen.
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-     /std/weapon/combat.c
+   Diese Property legt fest, inwiefern eine Waffe als Parierwaffe
+   genutzt werden kann. Moegliche Werte:
 
-----------------------------------------------------------------------------
+       PARRY_NOT     Eine reine Angriffswaffe ohne Parierfunktion.
+
+       PARRY_TOO     Eine kombinierte Angriffs- und Parierwaffe.
+
+       PARRY_ONLY    Eine reine Parierwaffe. Diese kann zusaetzlich
+                     zu einer normalen Waffe gezueckt werden.
+
+   Man sollte nur die in <combat.h> definierten Konstanten verwenden.
+
+
+BEMERKUNGEN
+===========
+
+   Durch diese Propertie laesst sich _kein_ Parade-Bonus fuer Trves
+   setzen! Alle Gilden haben etwas davon. Vor Verwendung bitte mit
+   der Objekt-Balance absprechen.
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon/combat.c
+
 Last modified: Sat Jun 01 13:28:45 2001 by Tilly
diff --git a/doc/props/P_PARRY_WEAPON b/doc/props/P_PARRY_WEAPON
index c873bfb..9ee60aa 100644
--- a/doc/props/P_PARRY_WEAPON
+++ b/doc/props/P_PARRY_WEAPON
@@ -1,17 +1,30 @@
+
 P_PARRY_WEAPON
+**************
 
-NAME:
-     P_PARRY_WEAPON "parry_weapon"
 
-DEFINIERT IN:
-     <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Property gibt an, welche Parierwaffe ein Spieler derzeit
-     gezueckt hat.
+   P_PARRY_WEAPON "parry_weapon"
 
-SIEHE AUCH:
-     /std/weapon/combat.c, /std/living/combat.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   <combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Diese Property gibt an, welche Parierwaffe ein Spieler derzeit
+   gezueckt hat.
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon/combat.c, /std/living/combat.c
+
 Last modified: Sat Jun 26 15:23:00 1999 by Paracelsus
diff --git a/doc/props/P_PEACE_HISTORY b/doc/props/P_PEACE_HISTORY
index f3cb2d2..eab38d5 100644
--- a/doc/props/P_PEACE_HISTORY
+++ b/doc/props/P_PEACE_HISTORY
@@ -1,42 +1,62 @@
+
 P_PEACE_HISTORY
+***************
 
-NAME:
-     P_PEACE_HISTORY      "_peace_history"
 
-DEFINIERT IN:
-     /sys/living/combat.h
+NAME
+====
 
-BESCHREIBUNG:
-    In dieser Prop wird nach Gilden getrennt gespeichet, wie oft das Lebewesen
-    in letzter Zeit befriedet worden ist. Diese Information geht in die
-    Chance auf eine zukuenftige Befriedung ein.
-    Die Zaehler werden im Durchschnitt alle 2700s um 2-3 reduziert.
-    Die Datenstruktur ist ein Array, welches einen Zeitstempel als erstes
-    Element und ein Mapping als zweites enthaelt. Das Mapping enthaelt unter
-    den Gildennamen als Keys den ganzzahligen Zaehler erfolgreicher
-    Befriedungen von Spielern dieser Gilde.
+   P_PEACE_HISTORY      "_peace_history"
 
-BEMERKUNGEN:
-    * Diese Property sollte niemals direkt geaendert werden. Bitte greift also
-      nur lesend darauf zu. Sollte hiermit Schindluder getrieben werden,
-      werden die Daten vor externer Aenderung geschuetzt.
-    * Die Datenstruktur in dieser Prop kann in Zukunft u.U. geaendert werden.
-      Daher aendert sie am besten auch nicht im eigenen NPC oder seid darauf
-      gefasst, irgendwann Hand anlegen zu muessen.
-    * Die Aktualisierung (auch die Reduktion) findet im Zuge eines
-      QueryPacify() statt, nicht im Reset des Lebewesens.
 
-BEISPIEL:
-    In P_PEACE_HISTORY steht:
-    ({1209654597, (["zauberer": 3, "klerus": 4]) })
-    Bei der Berechnung der naechsten Befriede-Chance gehen bei Zauberern also
-    3 erfolgreiche Versuche, bei Klerikern 4 erfolgreiche Versuche ein.
-    Der Zeitwert an erster Stelle des Arrays wird der bei der Berechnung der
-    naechsten Reduktion der Zaehler beruecksichtigt. (Genaues: s. combat.c)
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     P_PEACE_ACCEPT
-     QueryPacify()
-     /std/living/combat.c
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Prop wird nach Gilden getrennt gespeichet, wie oft das Lebewesen
+   in letzter Zeit befriedet worden ist. Diese Information geht in die
+   Chance auf eine zukuenftige Befriedung ein.
+   Die Zaehler werden im Durchschnitt alle 2700s um 2-3 reduziert.
+   Die Datenstruktur ist ein Array, welches einen Zeitstempel als erstes
+   Element und ein Mapping als zweites enthaelt. Das Mapping enthaelt unter
+   den Gildennamen als Keys den ganzzahligen Zaehler erfolgreicher
+   Befriedungen von Spielern dieser Gilde.
+
+
+BEMERKUNGEN
+===========
+
+   * Diese Property sollte niemals direkt geaendert werden. Bitte greift also
+     nur lesend darauf zu. Sollte hiermit Schindluder getrieben werden,
+     werden die Daten vor externer Aenderung geschuetzt.
+   * Die Datenstruktur in dieser Prop kann in Zukunft u.U. geaendert werden.
+     Daher aendert sie am besten auch nicht im eigenen NPC oder seid darauf
+     gefasst, irgendwann Hand anlegen zu muessen.
+   * Die Aktualisierung (auch die Reduktion) findet im Zuge eines
+     QueryPacify() statt, nicht im Reset des Lebewesens.
+
+
+BEISPIEL
+========
+
+   In P_PEACE_HISTORY steht:
+   ({1209654597, (["zauberer": 3, "klerus": 4]) })
+   Bei der Berechnung der naechsten Befriede-Chance gehen bei Zauberern also
+   3 erfolgreiche Versuche, bei Klerikern 4 erfolgreiche Versuche ein.
+   Der Zeitwert an erster Stelle des Arrays wird der bei der Berechnung der
+   naechsten Reduktion der Zaehler beruecksichtigt. (Genaues: s. combat.c)
+
+
+SIEHE AUCH
+==========
+
+   P_PEACE_ACCEPT
+   QueryPacify()
+   /std/living/combat.c
 
 01.05.2008, Zesstra
diff --git a/doc/props/P_PERM_STRING b/doc/props/P_PERM_STRING
index d7904b7..373c516 100644
--- a/doc/props/P_PERM_STRING
+++ b/doc/props/P_PERM_STRING
@@ -1,11 +1,24 @@
-NAME:
-    P_PERM_STRING                 "perm_string"                 
 
-DEFINIERT IN:
-    /sys/player/comm.h
+P_PERM_STRING
+*************
 
-BESCHREIBUNG:
-     Fuer Sprachflueche, Property ist im Spieler-Objekt zu setzen. In dem
-     Objekt, das in P_PERM_STRING gespeichert ist, wird bei Sprachbefehlen
-     permutate_string(str) aufgerufen und der zurueckgegebene String 
-     stattdessen ausgegeben.
+
+NAME
+====
+
+   P_PERM_STRING                 "perm_string"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/comm.h
+
+
+BESCHREIBUNG
+============
+
+   Fuer Sprachflueche, Property ist im Spieler-Objekt zu setzen. In dem
+   Objekt, das in P_PERM_STRING gespeichert ist, wird bei Sprachbefehlen
+   permutate_string(str) aufgerufen und der zurueckgegebene String
+   stattdessen ausgegeben.
diff --git a/doc/props/P_PICK_MSG b/doc/props/P_PICK_MSG
index f77d508..76b2760 100644
--- a/doc/props/P_PICK_MSG
+++ b/doc/props/P_PICK_MSG
@@ -1,60 +1,78 @@
+
 P_PICK_MSG
-NAME:
-     P_PICK_MSG				"pick_message"
+**********
 
-DEFINIERT IN:
-     /sys/living/put_and_get.h
 
-BESCHREIBUNG:
-     Mit P_PICK_MSG kann man die Meldung, die man beim Aufnehmen eines
-     Objektes bekommt, modifizieren.
+NAME
+====
 
-     Folgende Werte sind moeglich:
+   P_PICK_MSG                         "pick_message"
 
-     o 0
-       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
 
-     o NO_PNG_MSG       == -1
-       Es wird keinerlei Meldung ausgegeben
+DEFINIERT IN
+============
 
-     o Ein Array aus Strings
-       Der erste String wird an den Spieler ausgegeben, der zweite
-       (optionale) an den Raum.
+   /sys/living/put_and_get.h
 
-       Die Strings werden durch die Funktion replace_personal() geparst.
-	Objekt1 - Spieler
-        Objekt2 - das Objekt, das genommen wird
 
-       Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
-       Raum.
+BESCHREIBUNG
+============
 
-BEISPIEL:
-     void create() {
-      ...
-      SetProp( P_SHORT, "Etwas Sand" );
-      SetProp( P_LONG, break_string(
-       "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+   Mit P_PICK_MSG kann man die Meldung, die man beim Aufnehmen eines
+   Objektes bekommt, modifizieren.
 
-      SetProp( P_NAME, "Sand" );
-      AddId( ({"sand"}) );
-      SetProp( P_GENDER, MALE );
+   Folgende Werte sind moeglich:
 
-      SetProp( P_PICK_MSG, ({
-       "Du schaufelst @WEN2 in deine Hand.",
-       "@WER1 schaufelt @WEN2 in eine Hand."}));
-      ...
-     }
+   o 0
+     Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
 
-     Das ganze fuehrt bei Ugars "nimm sand" zu folgenden
-     Meldungen:
+   o NO_PNG_MSG       == -1
+     Es wird keinerlei Meldung ausgegeben
 
-     Ugar: "Du schaufelst den Sand in deine Hand."
-     Raum: "Ugar schaufelt den Sand in eine Hand."
+   o Ein Array aus Strings
+     Der erste String wird an den Spieler ausgegeben, der zweite
+     (optionale) an den Raum.
 
-SIEHE AUCH:
-     Aehnliches: P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
-     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
-                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Sonstiges:  replace_personal(E), pick_obj(L), /std/living/put_and_get.c
+     Die Strings werden durch die Funktion replace_personal() geparst.
+      Objekt1 - Spieler
+      Objekt2 - das Objekt, das genommen wird
+
+     Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+     Raum.
+
+
+BEISPIEL
+========
+
+   void create() {
+    ...
+    SetProp( P_SHORT, "Etwas Sand" );
+    SetProp( P_LONG, break_string(
+     "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+
+    SetProp( P_NAME, "Sand" );
+    AddId( ({"sand"}) );
+    SetProp( P_GENDER, MALE );
+
+    SetProp( P_PICK_MSG, ({
+     "Du schaufelst @WEN2 in deine Hand.",
+     "@WER1 schaufelt @WEN2 in eine Hand."}));
+    ...
+   }
+
+   Das ganze fuehrt bei Ugars "nimm sand" zu folgenden
+   Meldungen:
+
+   Ugar: "Du schaufelst den Sand in deine Hand."
+   Raum: "Ugar schaufelt den Sand in eine Hand."
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
+   Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+               P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Sonstiges:  replace_personal(E), pick_obj(L), /std/living/put_and_get.c
 
 14. Maerz 2004 Gloinson
diff --git a/doc/props/P_PILE_NAME b/doc/props/P_PILE_NAME
index e54dc72..edb0123 100644
--- a/doc/props/P_PILE_NAME
+++ b/doc/props/P_PILE_NAME
@@ -1,9 +1,22 @@
-NAME:
-    P_PILE_NAME                   "file_name"               
 
-DEFINIERT IN:
-    /sys/container/properties.h
+P_PILE_NAME
+***********
 
-BESCHREIBUNG:
-     In einer Leiche der Name des Gestorbenen im Dativ. (name(WEM))
-     Wird vom Haufen benoetigt.
+
+NAME
+====
+
+   P_PILE_NAME                   "file_name"
+
+
+DEFINIERT IN
+============
+
+   /sys/container/properties.h
+
+
+BESCHREIBUNG
+============
+
+   In einer Leiche der Name des Gestorbenen im Dativ. (name(WEM))
+   Wird vom Haufen benoetigt.
diff --git a/doc/props/P_PLAYER_LIGHT b/doc/props/P_PLAYER_LIGHT
index ddd59b5..ce0c22d 100644
--- a/doc/props/P_PLAYER_LIGHT
+++ b/doc/props/P_PLAYER_LIGHT
@@ -1,28 +1,44 @@
-NAME:
-    P_PLAYER_LIGHT                       "player_light"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_PLAYER_LIGHT
+**************
 
-BESCHREIBUNG:
-    Gibt den Lichtlevel an, mit dem ein Lebewesen sieht, ein Abfragen dieser
-    Property kann z.B. sinnvoll sein wenn man abfragen will ob ein Spieler
-    genug Licht dabei hat um ein bestimmtes Detail untersuchen zu koennen.
 
-    Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
-    da das Lichtlevel ggf. neu berechnet werden muss!
+NAME
+====
 
-    Ein direktes setzen dieser Property ist NICHT moeglich. Es ist jedoch
-    moeglich entweder eine Closure zu benutzen oder den Wert ueber einen
-    P_LIGHT_MODIFIER zu veraendern.
+   P_PLAYER_LIGHT                       "player_light"
 
-    Um zu erreichen, das ein NPC Nachtsicht bekommt, gibt es nun 3 Varianten.
-    - eine closure:
-        Set(P_PLAYER_LIGHT, function int () {return 1;} , F_QUERY_METHOD) 
-      dieses bedeutet, dass der NPC in jeder Dunkelheit perfekt sehen kann.
-    - das setzen von einem P_LIGHT_MODIFIER
-    - das benutzen des stdskills. Hierzu schreibt man in das create() des
-      NPCs einfach ein: ModifySkill(SK_NIGHTVISION, 10000);
 
-SIEHE AUCH:
-    P_LIGHT_MODIFIER, P_LIGHT, P_TOTAL_LIGHT, P_INT_LIGHT, CannotSee()
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt den Lichtlevel an, mit dem ein Lebewesen sieht, ein Abfragen dieser
+   Property kann z.B. sinnvoll sein wenn man abfragen will ob ein Spieler
+   genug Licht dabei hat um ein bestimmtes Detail untersuchen zu koennen.
+
+   Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
+   da das Lichtlevel ggf. neu berechnet werden muss!
+
+   Ein direktes setzen dieser Property ist NICHT moeglich. Es ist jedoch
+   moeglich entweder eine Closure zu benutzen oder den Wert ueber einen
+   P_LIGHT_MODIFIER zu veraendern.
+
+   Um zu erreichen, das ein NPC Nachtsicht bekommt, gibt es nun 3 Varianten.
+   - eine closure:
+       Set(P_PLAYER_LIGHT, function int () {return 1;} , F_QUERY_METHOD)
+     dieses bedeutet, dass der NPC in jeder Dunkelheit perfekt sehen kann.
+   - das setzen von einem P_LIGHT_MODIFIER
+   - das benutzen des stdskills. Hierzu schreibt man in das create() des
+     NPCs einfach ein: ModifySkill(SK_NIGHTVISION, 10000);
+
+
+SIEHE AUCH
+==========
+
+   P_LIGHT_MODIFIER, P_LIGHT, P_TOTAL_LIGHT, P_INT_LIGHT, CannotSee()
diff --git a/doc/props/P_PLURAL b/doc/props/P_PLURAL
index 0a5e3a5..eed829f 100644
--- a/doc/props/P_PLURAL
+++ b/doc/props/P_PLURAL
@@ -1,39 +1,58 @@
-NAME:
-    P_PLURAL                      "plural"
 
-DEFINIERT IN:
-    /sys/thing/language.h
+P_PLURAL
+********
 
-BESCHREIBUNG:
-    Mit Hilfe von P_PLURAL koennen auch nicht Unit Objekte als Pluralobjekte
-    markiert werden. Bei einem Wert > 1 wird der Wert ausserdem auch noch in
-    den Namen eingefuegt. Sollte man in eigenem Code zulassen wollen, das
-    etwas mit bestimmten Objekten geschieht, dann sollte man die Verben
-    entsprechen konjugieren.
 
-BEMERKUNGEN:
-    Wirkt nicht auf Todesmeldungen -> siehe dafuer P_KILL_MSG
+NAME
+====
 
-BEISPIELE:
-    SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 2);
-    name(WER, 1) -> "die zwei Stiefel"
+   P_PLURAL                      "plural"
 
-    SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 1);
-    name(WER, 1) -> "die Stiefel"
 
-    // Ein Beispiel fuer das konjugieren von Verben
-    static int cmd_opfer(string str)
-    {
-       int i;
-       object *obs;
-       notify_fail("Was moechtest Du opfern?\n");
-       if (!str || !sizeof(obs=PL->find_obs(str))) return 0;
-       for (i=sizeof(obs)-1; i>=0; i--)
-          if (obs[i]->QueryProp(P_VALUE)<=0)
-            write(obs[i]->Name(WER)+" "
-                 +(ob->QueryProp(P_PLURAL) ? "sind" : "ist")
-                 +" doch gar nichts wert.\n");
-          else obs[i]->remove();
-    }
+DEFINIERT IN
+============
+
+   /sys/thing/language.h
+
+
+BESCHREIBUNG
+============
+
+   Mit Hilfe von P_PLURAL koennen auch nicht Unit Objekte als Pluralobjekte
+   markiert werden. Bei einem Wert > 1 wird der Wert ausserdem auch noch in
+   den Namen eingefuegt. Sollte man in eigenem Code zulassen wollen, das
+   etwas mit bestimmten Objekten geschieht, dann sollte man die Verben
+   entsprechen konjugieren.
+
+
+BEMERKUNGEN
+===========
+
+   Wirkt nicht auf Todesmeldungen -> siehe dafuer P_KILL_MSG
+
+
+BEISPIELE
+=========
+
+   SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 2);
+   name(WER, 1) -> "die zwei Stiefel"
+
+   SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 1);
+   name(WER, 1) -> "die Stiefel"
+
+   // Ein Beispiel fuer das konjugieren von Verben
+   static int cmd_opfer(string str)
+   {
+      int i;
+      object *obs;
+      notify_fail("Was moechtest Du opfern?\n");
+      if (!str || !sizeof(obs=PL->find_obs(str))) return 0;
+      for (i=sizeof(obs)-1; i>=0; i--)
+         if (obs[i]->QueryProp(P_VALUE)<=0)
+           write(obs[i]->Name(WER)+" "
+                +(ob->QueryProp(P_PLURAL) ? "sind" : "ist")
+                +" doch gar nichts wert.\n");
+         else obs[i]->remove();
+   }
 
 26. Juni 2004 Gloinson
diff --git a/doc/props/P_POISON b/doc/props/P_POISON
index 2b7ea7b..2ab5dc1 100644
--- a/doc/props/P_POISON
+++ b/doc/props/P_POISON
@@ -1,8 +1,21 @@
-NAME:
-    P_POISON                      "poison"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_POISON
+********
 
-BESCHREIBUNG:
-     Wie stark wir vergiftet sind (0-11)
+
+NAME
+====
+
+   P_POISON                      "poison"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wie stark wir vergiftet sind (0-11)
diff --git a/doc/props/P_POISON_DELAY b/doc/props/P_POISON_DELAY
index aba57c6..079efd9 100644
--- a/doc/props/P_POISON_DELAY
+++ b/doc/props/P_POISON_DELAY
@@ -1,13 +1,25 @@
-NAME:
-    P_POISON_DELAY                     "poison_delay"                     
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_POISON_DELAY
+**************
 
-BESCHREIBUNG:
-     Anzahl der heart_beats nach denen sich die Giftwirkung erneut 
-     zeigt. Je kleiner der Wert, desto empfindlicher ist das Lebewesen
-     gegen Gift.
-     Aenderungen dieser Property in Spielern beduerfen der Genehmigung
-     des EMs fuer Balance.
-     
+
+NAME
+====
+
+   P_POISON_DELAY                     "poison_delay"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der heart_beats nach denen sich die Giftwirkung erneut
+   zeigt. Je kleiner der Wert, desto empfindlicher ist das Lebewesen
+   gegen Gift.
+   Aenderungen dieser Property in Spielern beduerfen der Genehmigung
+   des EMs fuer Balance.
diff --git a/doc/props/P_PORTIONS b/doc/props/P_PORTIONS
index cb134e6..a6bdf16 100644
--- a/doc/props/P_PORTIONS
+++ b/doc/props/P_PORTIONS
@@ -1,21 +1,39 @@
-NAME:
-     P_PORTIONS                    "std_food_portions"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_PORTIONS
+**********
 
-BESCHREIBUNG:
-     In dieser Property steht die Anzahl der Portionen einer Speise.
-     Es duerfen nur Werte > -1 gesetzt werden. Ist diese Property 0,
-     wird die Speise als leer bzw. verbraucht angesehen und kann nicht
-     konsumiert werden.
-     
-DEFAULT:
-     Initial ist diese Property auf 1 gesetzt, die Speise ist also mit
-     einem Bissen/Schluck verbraucht bzw. leer.
 
-SIEHE AUCH:
-     /std/food.c, wiz/food
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_PORTIONS                    "std_food_portions"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   In dieser Property steht die Anzahl der Portionen einer Speise.
+   Es duerfen nur Werte > -1 gesetzt werden. Ist diese Property 0,
+   wird die Speise als leer bzw. verbraucht angesehen und kann nicht
+   konsumiert werden.
+
+
+DEFAULT
+=======
+
+   Initial ist diese Property auf 1 gesetzt, die Speise ist also mit
+   einem Bissen/Schluck verbraucht bzw. leer.
+
+
+SIEHE AUCH
+==========
+
+   /std/food.c, wiz/food
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_POST b/doc/props/P_POST
index 53a6f74..975a884 100644
--- a/doc/props/P_POST
+++ b/doc/props/P_POST
@@ -1,64 +1,82 @@
-NAME:
-	P_POST				"Post"
 
-DEFINIERT IN:
-	/mail/post.h
+P_POST
+******
 
-BESCHREIBUNG:
-	In dieser Property laesst sich die Versendeerlaubnis von Paketen
-	regeln. Hierbei gibt es zum einen die postlagernden Pakete, die man
-	in einer Post abholen muss, und es gibt die sogenannten
-	Kurierpakete, welche direkt und unmittelbar zugestellt werden.
-	Nicht immer ist es erwuenscht, dass Pakete aus der Ferne in einen
-	Raum geschickt werden duerfen. Dies duerfte insbesondere innerhalb
-	von Gebieten interessant sein, in welche man nur beschraenkt viele
-	Objekte mitfuehren kann. Mit dieser Property nun ist es leicht
-	moeglich, dies zu verbieten. Man kann auch in den Objekten selbst
-	angeben, ob diese per postlagerndem Paket bzw. Kurierpaket
-	verschickt werden duerfen. Dies duerfte zum Beispiel bei Komponenten
-	fuer Spells oder fuer Unique-Objekte interessant sein.
-	Folgende Werte sind moeglich, wobei in Raeumen und Objekten
-	Standardmaessig PP_DEFAULT genutzt wird:
 
-	  PP_FORBIDDEN		-2	// auf jeden Fall verboten
-	  PP_NO_EXPRESS		-1	// Kurierpakete verboten
-	  PP_DEFAULT		 0	// Default
-	  PP_NORMAL_ALLOWED	 1	// postlagernde Pakete erlaubt
-	  PP_ALLOWED		 2	// auf jeden Fall erlaubt
+NAME
+====
 
-	Raeume, die von /std/post.c abgeleitet wurden, nutzen als Standard
-	natuerlich PP_ALLOWED.
+   P_POST                          "Post"
 
-BEISPIEL:
-	Um Kurierpakete fuer einen Raum zu verbieten, nutzt man die
-	Funktionalitaet dieser Property folgendermassen:
 
-	  include "/mail/post.h"
-	  ...
-	  void create()
-	  { ::create();
-	    ...
-	    SetProp(P_POST,PP_NO_EXPRESS);
-	    ...
-	  }
+DEFINIERT IN
+============
 
-	Objekte selbst koennte man folgendermassen aus Paketen verbannen,
-	welche versendet werden sollen:
+   /mail/post.h
 
-	  include "/mail/post.h"
-	  ...
-	  void create()
-	  { ::create();
-	    ...
-	    SetProp(P_POST,PP_FORBIDDEN);
-	    ...
-	  }
 
-	In letzterem Fall funktionieren im Gegensatz zum ersten Beispiel
-	auch keine postlagernden Pakete mehr.
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-	/std/post.c, /std/mailcabin.c, /p/service/loco/std/mailcabin.c
+   In dieser Property laesst sich die Versendeerlaubnis von Paketen
+   regeln. Hierbei gibt es zum einen die postlagernden Pakete, die man
+   in einer Post abholen muss, und es gibt die sogenannten
+   Kurierpakete, welche direkt und unmittelbar zugestellt werden.
+   Nicht immer ist es erwuenscht, dass Pakete aus der Ferne in einen
+   Raum geschickt werden duerfen. Dies duerfte insbesondere innerhalb
+   von Gebieten interessant sein, in welche man nur beschraenkt viele
+   Objekte mitfuehren kann. Mit dieser Property nun ist es leicht
+   moeglich, dies zu verbieten. Man kann auch in den Objekten selbst
+   angeben, ob diese per postlagerndem Paket bzw. Kurierpaket
+   verschickt werden duerfen. Dies duerfte zum Beispiel bei Komponenten
+   fuer Spells oder fuer Unique-Objekte interessant sein.
+   Folgende Werte sind moeglich, wobei in Raeumen und Objekten
+   Standardmaessig PP_DEFAULT genutzt wird:
 
-----------------------------------------------------------------------------
+     PP_FORBIDDEN          -2      // auf jeden Fall verboten
+     PP_NO_EXPRESS         -1      // Kurierpakete verboten
+     PP_DEFAULT             0      // Default
+     PP_NORMAL_ALLOWED      1      // postlagernde Pakete erlaubt
+     PP_ALLOWED             2      // auf jeden Fall erlaubt
+
+   Raeume, die von /std/post.c abgeleitet wurden, nutzen als Standard
+   natuerlich PP_ALLOWED.
+
+
+BEISPIEL
+========
+
+   Um Kurierpakete fuer einen Raum zu verbieten, nutzt man die
+   Funktionalitaet dieser Property folgendermassen:
+
+     include "/mail/post.h"
+     ...
+     void create()
+     { ::create();
+       ...
+       SetProp(P_POST,PP_NO_EXPRESS);
+       ...
+     }
+
+   Objekte selbst koennte man folgendermassen aus Paketen verbannen,
+   welche versendet werden sollen:
+
+     include "/mail/post.h"
+     ...
+     void create()
+     { ::create();
+       ...
+       SetProp(P_POST,PP_FORBIDDEN);
+       ...
+     }
+
+   In letzterem Fall funktionieren im Gegensatz zum ersten Beispiel
+   auch keine postlagernden Pakete mehr.
+
+
+SIEHE AUCH
+==========
+
+   /std/post.c, /std/mailcabin.c, /p/service/loco/std/mailcabin.c
+
 Last modified: Sun Sep  6 19:34:37 1998 by Patryn
diff --git a/doc/props/P_POTIONROOMS b/doc/props/P_POTIONROOMS
index 5820be2..0df158f 100644
--- a/doc/props/P_POTIONROOMS
+++ b/doc/props/P_POTIONROOMS
@@ -1,19 +1,35 @@
-NAME:
-    P_POTIONROOMS                 "potionrooms"                 
 
-DEFINIERT IN:
-    /sys/player/potion.h
+P_POTIONROOMS
+*************
 
-BESCHREIBUNG:
-    Array mit den Nummern der Raeume, in denen der Spieler noch Zauber-
-    traenke hat. Die Freischaltung als bekannt geschieht im Orakel.
-    Die Zuordnung der Raeume und Nummern geschieht im Potionmaster.
 
-    Nur lesbare _query - Property.
+NAME
+====
 
-SIEHE AUCH:
-    Sonstiges: zaubertraenke, /secure/potionmaster.c, /room/orakel.c
-    Verwandt:  FindPotion(), AddKnownPotion(), RemoveKnownPotion(), InList()
-    Props:     P_KNOWN_POTIONROOMS
+   P_POTIONROOMS                 "potionrooms"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/potion.h
+
+
+BESCHREIBUNG
+============
+
+   Array mit den Nummern der Raeume, in denen der Spieler noch Zauber-
+   traenke hat. Die Freischaltung als bekannt geschieht im Orakel.
+   Die Zuordnung der Raeume und Nummern geschieht im Potionmaster.
+
+   Nur lesbare _query - Property.
+
+
+SIEHE AUCH
+==========
+
+   Sonstiges: zaubertraenke, /secure/potionmaster.c, /room/orakel.c
+   Verwandt:  FindPotion(), AddKnownPotion(), RemoveKnownPotion(), InList()
+   Props:     P_KNOWN_POTIONROOMS
 
 6.Feb 2016 Gloinson
diff --git a/doc/props/P_PRAY_ROOM b/doc/props/P_PRAY_ROOM
index 3c8f9ff..ad0a469 100644
--- a/doc/props/P_PRAY_ROOM
+++ b/doc/props/P_PRAY_ROOM
@@ -1,36 +1,54 @@
-NAME:
-    P_PRAY_ROOM                      "_lib_p_pray_room"                  
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_PRAY_ROOM
+***********
 
-BESCHREIBUNG:
-    Dies ist der Raum, in den der Spieler nach dem Ende der Todessequenz
-    bewegt wird, d.h. ein Raum, wo er beten kann, um einen neuen Koerper zu
-    erhalten.
-    Der Raum muss als String angegeben werden (kein Objekt).
 
-    Diese Property wird im Spieler rebootfest gespeichert.
+NAME
+====
 
-    Der jeweils gueltige Betraum wird im Spieler mittels QueryPrayRoom()
-    ermittelt. Jede Rasse hat einen Default fuer diese Funktion. Wird die
-    Property auf 0 dgesetzt, wird dieser Default wiederhergestellt.
+   P_PRAY_ROOM                      "_lib_p_pray_room"
 
-    Von einer Ueberlagerung mittels Query- oder gar Setmethoden wird
-    abgeraten. Ebenso lasst bitte die Modusbits unveraendert.
 
-    Vor einer Aenderung dieser Property sollte geprueft werden, ob sie 0 ist.
-    Wenn nicht, sollte von einem Setzen der Property abgesehen werden, da dann
-    schon jemand anders den Betraum des Spielers geaendert hat. (Gleiches gilt
-    fuers Loeschen.) Bitte niemals den Inhalt der Property woanders speichern
-    und spaeter zurueckschreiben.
+DEFINIERT IN
+============
 
-    Eine dauerhafte Aenderung des Betraums des Spielers muss mit dem EM
-    Rassen und dem EM Gilden abgestimmt werden.
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Dies ist der Raum, in den der Spieler nach dem Ende der Todessequenz
+   bewegt wird, d.h. ein Raum, wo er beten kann, um einen neuen Koerper zu
+   erhalten.
+   Der Raum muss als String angegeben werden (kein Objekt).
+
+   Diese Property wird im Spieler rebootfest gespeichert.
+
+   Der jeweils gueltige Betraum wird im Spieler mittels QueryPrayRoom()
+   ermittelt. Jede Rasse hat einen Default fuer diese Funktion. Wird die
+   Property auf 0 dgesetzt, wird dieser Default wiederhergestellt.
+
+   Von einer Ueberlagerung mittels Query- oder gar Setmethoden wird
+   abgeraten. Ebenso lasst bitte die Modusbits unveraendert.
+
+   Vor einer Aenderung dieser Property sollte geprueft werden, ob sie 0 ist.
+   Wenn nicht, sollte von einem Setzen der Property abgesehen werden, da dann
+   schon jemand anders den Betraum des Spielers geaendert hat. (Gleiches gilt
+   fuers Loeschen.) Bitte niemals den Inhalt der Property woanders speichern
+   und spaeter zurueckschreiben.
+
+   Eine dauerhafte Aenderung des Betraums des Spielers muss mit dem EM
+   Rassen und dem EM Gilden abgestimmt werden.
+
 
 SIEHE AUCH
-    QueryPrayRoom(), SetDefaultPrayRoom()
+==========
 
-LETZTE AeNDERUNG:
+   QueryPrayRoom(), SetDefaultPrayRoom()
+
+
+LETZTE AeNDERUNG
+================
+
 21.05.2013, Zesstra
-
diff --git a/doc/props/P_PREFERED_ENEMY b/doc/props/P_PREFERED_ENEMY
index eed58e6..6b629aa 100644
--- a/doc/props/P_PREFERED_ENEMY
+++ b/doc/props/P_PREFERED_ENEMY
@@ -1,26 +1,41 @@
-NAME:
-	P_PREFERED_ENEMY		"pref_enemy"
 
-DEFINIERT IN:
-	/sys/living/combat.h
+P_PREFERED_ENEMY
+****************
 
-BESCHREIBUNG:
-	Diese Property enthaelt ein Array mit folgenden Eintraegen:
-	  Eintrag 1:      Integerwert zwischen 0 und 100, welcher die
-	                  Wahrscheinlichkeit dafuer angibt, dass ein
-	                  Lebewesen bevorzugt bei einem Angriff gewaehlt
-	                  werden soll.
-	  Eintraege ab 2: Lebewesen, aus welchen per Zufall eines
-	                  ausgewaehlt wird, welches beim aktuellen Angriff
-	                  bevorzugt wird.
-	Es ist zu beachten, dass solch ein bevorzugtes Opfer natuerlich auch
-	wirklich Gegner sein muss und auch im selben Raum zu stehen hat, wie
-	der Angreifer. Ist dies nicht der Fall, wird dann doch irgendein
-	anderer Gegner aus diesem Raum genommen.
 
-SIEHE AUCH:
-	QueryPreferedEnemy(), IsEnemy(), SelectEnemy(), Attack(),
-	/std/living/combat.c, /std/living/life.c
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_PREFERED_ENEMY                "pref_enemy"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt ein Array mit folgenden Eintraegen:
+     Eintrag 1:      Integerwert zwischen 0 und 100, welcher die
+                     Wahrscheinlichkeit dafuer angibt, dass ein
+                     Lebewesen bevorzugt bei einem Angriff gewaehlt
+                     werden soll.
+     Eintraege ab 2: Lebewesen, aus welchen per Zufall eines
+                     ausgewaehlt wird, welches beim aktuellen Angriff
+                     bevorzugt wird.
+   Es ist zu beachten, dass solch ein bevorzugtes Opfer natuerlich auch
+   wirklich Gegner sein muss und auch im selben Raum zu stehen hat, wie
+   der Angreifer. Ist dies nicht der Fall, wird dann doch irgendein
+   anderer Gegner aus diesem Raum genommen.
+
+
+SIEHE AUCH
+==========
+
+   QueryPreferedEnemy(), IsEnemy(), SelectEnemy(), Attack(),
+   /std/living/combat.c, /std/living/life.c
+
 Last modified: Wed May 26 16:44:38 1999 by Patryn
diff --git a/doc/props/P_PRESAY b/doc/props/P_PRESAY
index c5ec2d2..1580b5e 100644
--- a/doc/props/P_PRESAY
+++ b/doc/props/P_PRESAY
@@ -1,9 +1,22 @@
-NAME:
-    P_PRESAY                      "presay"                      
 
-DEFINIERT IN:
-    /sys/player/description.h
+P_PRESAY
+********
 
-BESCHREIBUNG:
-     Presay des Spielers. Erscheint vor dem Namen in Kurz/Langbeschreibung.
-     Erscheint auch in name(), also in sag, ruf, teile mit usw.
+
+NAME
+====
+
+   P_PRESAY                      "presay"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/description.h
+
+
+BESCHREIBUNG
+============
+
+   Presay des Spielers. Erscheint vor dem Namen in Kurz/Langbeschreibung.
+   Erscheint auch in name(), also in sag, ruf, teile mit usw.
diff --git a/doc/props/P_PREVENT_PILE b/doc/props/P_PREVENT_PILE
index 39ddf14..1ad6807 100644
--- a/doc/props/P_PREVENT_PILE
+++ b/doc/props/P_PREVENT_PILE
@@ -1,22 +1,34 @@
-NAME:
-    P_PREVENT_PILE                   "prevent_pile"
 
-DEFINIERT IN:
-    /sys/container/properties.h
+P_PREVENT_PILE
+**************
 
-BESCHREIBUNG:
-    Wenn in einem Raum diese Property gesetzt ist, endet das Verwesen einer
-    Leiche damit, dass ihr Inventar in dem Raum verteilt wird. Ist diese
-    Property nicht gesetzt, entsteht ein "Haufen", der das Inventar
-    enthaelt.
 
-    Diese Property sollte nur in Ausnahmefaellen benutzt werden!
+NAME
+====
 
-    Diese Property ist vor allem fuer "Store-Rooms" gedacht, in denen die
-    Magier die Leiche eines Spieler ablegen und in denen nachher die
-    gesammelten Sachen von einer anderen Stelle aus gesucht werden. In
-    diesem Fall wuerden Spieler sonst die Moeglichkeit haben, einen Haufen
-    als Ganzes zu bekommen, das soll aber *NIE* passieren.
+   P_PREVENT_PILE                   "prevent_pile"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/container/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn in einem Raum diese Property gesetzt ist, endet das Verwesen einer
+   Leiche damit, dass ihr Inventar in dem Raum verteilt wird. Ist diese
+   Property nicht gesetzt, entsteht ein "Haufen", der das Inventar
+   enthaelt.
+
+   Diese Property sollte nur in Ausnahmefaellen benutzt werden!
+
+   Diese Property ist vor allem fuer "Store-Rooms" gedacht, in denen die
+   Magier die Leiche eines Spieler ablegen und in denen nachher die
+   gesammelten Sachen von einer anderen Stelle aus gesucht werden. In
+   diesem Fall wuerden Spieler sonst die Moeglichkeit haben, einen Haufen
+   als Ganzes zu bekommen, das soll aber *NIE* passieren.
+
 Last modified: Tue May 15 13:56:18 CEST 2007 by Rumata
diff --git a/doc/props/P_PRE_INFO b/doc/props/P_PRE_INFO
index 48f1d9e..099e592 100644
--- a/doc/props/P_PRE_INFO
+++ b/doc/props/P_PRE_INFO
@@ -1,55 +1,86 @@
-NAME:
-        P_PRE_INFO                        "npc_pre_info"
 
-DEFINIERT IN:
-        /sys/npc.h
+P_PRE_INFO
+**********
 
-BESCHREIBUNG:
-        Ist die Property in einem NPC definiert, so wird ihr Ergebnis
-        ausgewertet, bevor eine Frage an das Infosystem uebergeben wird.
-        
-        Moegliche Werte:
-        - numerischer Wert ungleich 0
-          => der NPC gibt _keinerlei_ Antwort, die Frage fuehrt sozusagen
-             ins Leere
 
-        - Stringwert
-          => wird als Rueckgabe an den Fragenden ausgegeben, umstehende 
-             Personen bekommen den Text:
-            "XY ist nicht gewillt, Spieler YZ zu antworten".
-            Der Fragende selbst bekommt bei angegebenem Stringwert:
-            "XY " + Stringwert.
+NAME
+====
 
-        - Closure
-          => die Antwort bzw. Reaktion des NPCs obliegt ganz der 
-             angegebenen Closure. Diese muss dabei einen String oder 
-             Ganzzahlen-Wert zurueckgeben
+   P_PRE_INFO                        "npc_pre_info"
 
-BEISPIEL:
-        Ein NPC der manchmal herumrennt, um z.B. eine Aufgabe zu verrichten,
-        koennte so lange Chats abschalten, z.B.
 
-          SetProp(P_CHAT_CHANCE,0); // NPC latscht los
-        
-        Und eine Weile spaeter:
-        
-          SetProp(P_CHAT_CHANCE,5); // NPC ruht wieder, quasselt rum
-        
-        Waehrend des Herumlaufens, also wenn er nicht automatisch schwatzt,
-        soll er auch keinerlei Fragen beantworten:
-          
-          Set(P_PRE_INFO, function mixed () {
-            return (QueryProp(P_CHAT_CHANCE) ? 0 : 
-              "hat gerade keine Zeit fuer Dich."); 
-            }, F_QUERY_METHOD);
+DEFINIERT IN
+============
 
-HINWEISE:
-        Bitte beachten, dass der interne Name der Property "npc_pre_info" 
-        ist und somit nur das Ueberschreiben von _query_npc_pre_info() 
-        funktioniert. 
+   /sys/npc.h
 
-SIEHE AUCH:
-        AddInfo(), /std/npc/info.c
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Ist die Property in einem NPC definiert, so wird ihr Ergebnis
+   ausgewertet, bevor eine Frage an das Infosystem uebergeben wird.
+
+
+
+   Moegliche Werte:
+   - numerischer Wert ungleich 0
+     => der NPC gibt _keinerlei_ Antwort, die Frage fuehrt sozusagen
+        ins Leere
+
+   - Stringwert
+     => wird als Rueckgabe an den Fragenden ausgegeben, umstehende
+        Personen bekommen den Text:
+       "XY ist nicht gewillt, Spieler YZ zu antworten".
+       Der Fragende selbst bekommt bei angegebenem Stringwert:
+       "XY " + Stringwert.
+
+   - Closure
+     => die Antwort bzw. Reaktion des NPCs obliegt ganz der
+        angegebenen Closure. Diese muss dabei einen String oder
+        Ganzzahlen-Wert zurueckgeben
+
+
+BEISPIEL
+========
+
+   Ein NPC der manchmal herumrennt, um z.B. eine Aufgabe zu verrichten,
+   koennte so lange Chats abschalten, z.B.
+
+     SetProp(P_CHAT_CHANCE,0); // NPC latscht los
+
+
+
+   Und eine Weile spaeter:
+
+
+
+     SetProp(P_CHAT_CHANCE,5); // NPC ruht wieder, quasselt rum
+
+
+
+   Waehrend des Herumlaufens, also wenn er nicht automatisch schwatzt,
+   soll er auch keinerlei Fragen beantworten:
+
+
+
+     Set(P_PRE_INFO, function mixed () {
+       return (QueryProp(P_CHAT_CHANCE) ? 0 :
+         "hat gerade keine Zeit fuer Dich.");
+       }, F_QUERY_METHOD);
+
+
+HINWEISE
+========
+
+   Bitte beachten, dass der interne Name der Property "npc_pre_info"
+   ist und somit nur das Ueberschreiben von _query_npc_pre_info()
+   funktioniert.
+
+
+SIEHE AUCH
+==========
+
+   AddInfo(), /std/npc/info.c
+
 Last modified: 01.03.2016 by Arathorn
diff --git a/doc/props/P_PROMPT b/doc/props/P_PROMPT
index b380215..267437e 100644
--- a/doc/props/P_PROMPT
+++ b/doc/props/P_PROMPT
@@ -1,8 +1,21 @@
-NAME:
-    P_PROMPT                      "prompt"                      
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_PROMPT
+********
 
-BESCHREIBUNG:
-     Das Prompt (Nur fuer Magier).
+
+NAME
+====
+
+   P_PROMPT                      "prompt"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Das Prompt (Nur fuer Magier).
diff --git a/doc/props/P_PUB_NOT_ON_MENU b/doc/props/P_PUB_NOT_ON_MENU
index 07029b0..8618009 100644
--- a/doc/props/P_PUB_NOT_ON_MENU
+++ b/doc/props/P_PUB_NOT_ON_MENU
@@ -1,21 +1,39 @@
-NAME:
-	P_PUB_NOT_ON_MENU			"pub_not_on_menu"
 
-DEFINIERT IN:
-	/sys/pub.h
+P_PUB_NOT_ON_MENU
+*****************
 
-BESCHREIBUNG:
-        In diese Property kann man einen String schreiben, der ausgegeben
-        wird, wenn der Spieler etwas bestellt, was es in der Kneipe nicht
-        gibt.
 
-BEMERKUNGEN:
-        Die Standardmeldung ist:
-        "Tut mir leid, das fuehren wir nicht! Wir sind ein anstaendiges
-         Lokal!\n"
+NAME
+====
 
-SIEHE AUCH:
-	/std/room/pub.c
+   P_PUB_NOT_ON_MENU                       "pub_not_on_menu"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/pub.h
+
+
+BESCHREIBUNG
+============
+
+   In diese Property kann man einen String schreiben, der ausgegeben
+   wird, wenn der Spieler etwas bestellt, was es in der Kneipe nicht
+   gibt.
+
+
+BEMERKUNGEN
+===========
+
+   Die Standardmeldung ist:
+   "Tut mir leid, das fuehren wir nicht! Wir sind ein anstaendiges
+    Lokal!\n"
+
+
+SIEHE AUCH
+==========
+
+   /std/room/pub.c
+
 Last modified: Sat Mar 04 22:46:00 2000 by Paracelsus
diff --git a/doc/props/P_PUB_NO_KEEPER b/doc/props/P_PUB_NO_KEEPER
index 8f4c26e..55c4230 100644
--- a/doc/props/P_PUB_NO_KEEPER
+++ b/doc/props/P_PUB_NO_KEEPER
@@ -1,19 +1,37 @@
-NAME:
-	P_PUB_NO_KEEPER				"pub_no_keeper"
 
-DEFINIERT IN:
-	/sys/pub.h
+P_PUB_NO_KEEPER
+***************
 
-BESCHREIBUNG:
-        In diese Property kann man einen String schreiben, der ausgegeben
-        wird, wenn der in P_KEEPER eingetragene NPC nicht anwesend ist.
 
-BEMERKUNGEN:
-        Die Standardmeldung ist:
-        "Es ist niemand anwesend, der Dich bedienen koennte.\n"
+NAME
+====
 
-SIEHE AUCH:
-	/std/room/pub.c
+   P_PUB_NO_KEEPER                         "pub_no_keeper"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/pub.h
+
+
+BESCHREIBUNG
+============
+
+   In diese Property kann man einen String schreiben, der ausgegeben
+   wird, wenn der in P_KEEPER eingetragene NPC nicht anwesend ist.
+
+
+BEMERKUNGEN
+===========
+
+   Die Standardmeldung ist:
+   "Es ist niemand anwesend, der Dich bedienen koennte.\n"
+
+
+SIEHE AUCH
+==========
+
+   /std/room/pub.c
+
 Last modified: Son Apr 11 19:28:00 2010 by Caldra
diff --git a/doc/props/P_PUB_NO_MONEY b/doc/props/P_PUB_NO_MONEY
index 9ff293a..9510b07 100644
--- a/doc/props/P_PUB_NO_MONEY
+++ b/doc/props/P_PUB_NO_MONEY
@@ -1,21 +1,39 @@
-NAME:
-	P_PUB_NO_MONEY				"pub_no_money"
 
-DEFINIERT IN:
-	/sys/pub.h
+P_PUB_NO_MONEY
+**************
 
-BESCHREIBUNG:
-        In diese Property kann man einen String schreiben, der ausgegeben
-        wird, wenn der Spieler nicht ueber genug Geld verfuegt, um das
-        gewuenschte Gericht zu bezahlen.
-        Fuer den Preis kann man ein %d als Platzhalter einfuegen.
 
-BEMERKUNGEN:
-        Die Standardmeldung ist:
-        "Das kostet %d Goldstuecke, und Du hast nicht so viel!\n"
+NAME
+====
 
-SIEHE AUCH:
-	/std/room/pub.c
+   P_PUB_NO_MONEY                          "pub_no_money"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/pub.h
+
+
+BESCHREIBUNG
+============
+
+   In diese Property kann man einen String schreiben, der ausgegeben
+   wird, wenn der Spieler nicht ueber genug Geld verfuegt, um das
+   gewuenschte Gericht zu bezahlen.
+   Fuer den Preis kann man ein %d als Platzhalter einfuegen.
+
+
+BEMERKUNGEN
+===========
+
+   Die Standardmeldung ist:
+   "Das kostet %d Goldstuecke, und Du hast nicht so viel!\n"
+
+
+SIEHE AUCH
+==========
+
+   /std/room/pub.c
+
 Last modified: Sat Mar 04 22:48:00 2000 by Paracelsus
diff --git a/doc/props/P_PUB_UNAVAILABLE b/doc/props/P_PUB_UNAVAILABLE
index 13aaa4f..7eaede7 100644
--- a/doc/props/P_PUB_UNAVAILABLE
+++ b/doc/props/P_PUB_UNAVAILABLE
@@ -1,20 +1,38 @@
-NAME:
-	P_PUB_UNAVAILABLE			"pub_unavailable"
 
-DEFINIERT IN:
-	/sys/pub.h
+P_PUB_UNAVAILABLE
+*****************
 
-BESCHREIBUNG:
-        In diese Property kann man einen String schreiben, der ausgegeben
-        wird, wenn in einer Kneipe ein Getraenk oder eine Speise nicht mehr
-        vorraetig ist.
 
-BEMERKUNGEN:
-        Die Standardmeldung ist:
-        "Davon ist leider nichts mehr da.\n"
+NAME
+====
 
-SIEHE AUCH:
-	/std/room/pub.c
+   P_PUB_UNAVAILABLE                       "pub_unavailable"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/pub.h
+
+
+BESCHREIBUNG
+============
+
+   In diese Property kann man einen String schreiben, der ausgegeben
+   wird, wenn in einer Kneipe ein Getraenk oder eine Speise nicht mehr
+   vorraetig ist.
+
+
+BEMERKUNGEN
+===========
+
+   Die Standardmeldung ist:
+   "Davon ist leider nichts mehr da.\n"
+
+
+SIEHE AUCH
+==========
+
+   /std/room/pub.c
+
 Last modified: Sat Mar 04 22:44:00 2000 by Paracelsus
diff --git a/doc/props/P_PURSUERS b/doc/props/P_PURSUERS
index c35bfe2..05ead3b 100644
--- a/doc/props/P_PURSUERS
+++ b/doc/props/P_PURSUERS
@@ -1,14 +1,29 @@
-NAME:
-    P_PURSUERS                    "pursuers"                    
 
-DEFINIERT IN:
-    /sys/living/moving.h
+P_PURSUERS
+**********
 
-BESCHREIBUNG:
-     Enthaelt Verfolger - nicht von Hand manipulieren!
 
-SIEHE AUCH:
-     AddPursuer(L), RemovePursuer(L)
+NAME
+====
 
------------------------------------------------------------------------------
+   P_PURSUERS                    "pursuers"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt Verfolger - nicht von Hand manipulieren!
+
+
+SIEHE AUCH
+==========
+
+   AddPursuer(L), RemovePursuer(L)
+
 16.06.2016, Arathorn
diff --git a/doc/props/P_PUT_MSG b/doc/props/P_PUT_MSG
index 5f6caef..65624ce 100644
--- a/doc/props/P_PUT_MSG
+++ b/doc/props/P_PUT_MSG
@@ -1,62 +1,79 @@
+
 P_PUT_MSG
-NAME:
-     P_PUT_MSG				"put_message"
+*********
 
-DEFINIERT IN:
-     /sys/living/put_and_get.h
 
-BESCHREIBUNG:
+NAME
+====
 
-     Mit P_PUT_MSG kann man die Meldung, die man beim Hineinstecken eines
-     Objektes in einen Container bekommt, modifizieren.
+   P_PUT_MSG                          "put_message"
 
-     Folgende Werte sind moeglich:
 
-     o 0
-       Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
+DEFINIERT IN
+============
 
-     o NO_PNG_MSG	== -1
-       Es wird keinerlei Meldung ausgegeben
+   /sys/living/put_and_get.h
 
-     o Ein Array aus Strings
-       Der erste String wird an den Spieler ausgegeben, der zweite
-       (optionale) an den Raum.
 
-       Die Strings werden durch die Funktion replace_personal() geparst.
-	Objekt1 - Spieler
-        Objekt2 - das Objekt, das irgendwohin gesteckt wird
-	Objekt3 - der Container
+BESCHREIBUNG
+============
 
-       Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
-       Raum.
+   Mit P_PUT_MSG kann man die Meldung, die man beim Hineinstecken eines
+   Objektes in einen Container bekommt, modifizieren.
 
-BEISPIEL:
-     void create() {
-      ...
-      SetProp( P_SHORT, "Etwas Sand" );
-      SetProp( P_LONG, break_string(
-       "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+   Folgende Werte sind moeglich:
 
-      SetProp( P_NAME, "Sand" );
-      AddId( ({"sand"}) );
-      SetProp( P_GENDER, MALE );
+   o 0
+     Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
 
-      SetProp( P_PUT_MSG, ({
-       "Du laesst @WEN2 in @WENU3 rieseln.",
-       "@WER1 laesst @WEN2 in @WENU3 rieseln."}));
-      ...
-     }
+   o NO_PNG_MSG       == -1
+     Es wird keinerlei Meldung ausgegeben
 
-     Das ganze fuehrt bei Ugars "stecke sand in paket" zu folgenden
-     Meldungen:
+   o Ein Array aus Strings
+     Der erste String wird an den Spieler ausgegeben, der zweite
+     (optionale) an den Raum.
 
-     Ugar: "Du laesst den Sand in ein Paket rieseln."
-     Raum: "Ugar laesst den Sand in ein Paket rieseln."
+     Die Strings werden durch die Funktion replace_personal() geparst.
+      Objekt1 - Spieler
+      Objekt2 - das Objekt, das irgendwohin gesteckt wird
+      Objekt3 - der Container
 
-SIEHE AUCH:
-     Aehnliches: P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
-     Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
-                 P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Sonstiges:  replace_personal(E), put_obj(L), /std/living/put_and_get.c
+     Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+     Raum.
+
+
+BEISPIEL
+========
+
+   void create() {
+    ...
+    SetProp( P_SHORT, "Etwas Sand" );
+    SetProp( P_LONG, break_string(
+     "Ein wenig magischer Sand. Sehr feinkruemelig.",78 ));
+
+    SetProp( P_NAME, "Sand" );
+    AddId( ({"sand"}) );
+    SetProp( P_GENDER, MALE );
+
+    SetProp( P_PUT_MSG, ({
+     "Du laesst @WEN2 in @WENU3 rieseln.",
+     "@WER1 laesst @WEN2 in @WENU3 rieseln."}));
+    ...
+   }
+
+   Das ganze fuehrt bei Ugars "stecke sand in paket" zu folgenden
+   Meldungen:
+
+   Ugar: "Du laesst den Sand in ein Paket rieseln."
+   Raum: "Ugar laesst den Sand in ein Paket rieseln."
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_WEAR_MSG, P_WIELD_MSG
+   Fehler:     P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG,
+               P_NOINSERT_MSG, P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Sonstiges:  replace_personal(E), put_obj(L), /std/living/put_and_get.c
 
 14. Maerz 2004 Gloinson
diff --git a/doc/props/P_QP b/doc/props/P_QP
index 08fb5a4..9840586 100644
--- a/doc/props/P_QP
+++ b/doc/props/P_QP
@@ -1,13 +1,29 @@
-NAME:
-    P_QP                          "questpoints"                 
 
-DEFINIERT IN:
-    /sys/player/quest.h
+P_QP
+****
 
-BESCHREIBUNG:
-     Anzahl der Questpunkte, die ein Spieler hat.
 
-HINWEIS:
-     Nur Abfragen der Property mit QueryProp() liefert den korrekten Wert,
-     da eine Quermethode fuer die Auslieferung der Daten sorgt. Query()
-     oder gar QueryProperties() enthalten u.U. einen veralteten Wert.
+NAME
+====
+
+   P_QP                          "questpoints"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/quest.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der Questpunkte, die ein Spieler hat.
+
+
+HINWEIS
+=======
+
+   Nur Abfragen der Property mit QueryProp() liefert den korrekten Wert,
+   da eine Quermethode fuer die Auslieferung der Daten sorgt. Query()
+   oder gar QueryProperties() enthalten u.U. einen veralteten Wert.
diff --git a/doc/props/P_QUALITY b/doc/props/P_QUALITY
index 3a4118c..a103eaf 100644
--- a/doc/props/P_QUALITY
+++ b/doc/props/P_QUALITY
@@ -1,38 +1,57 @@
+
 P_QUALITY
+*********
 
-NAME:
-     P_QUALITY "quality"
 
-DEFINIERT IN:
-     <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Ruestungen und Waffen koennen im Eifer des Gefechts beschaedigt werden.
-     Setzt man die Property P_QUALITY auf einen Wert n (n>0), so wird
-     eine Waffe (Ruestung) bei jedem n-ten Schlag (Treffer) beschaedigt,
-     d.h. P_WC (P_AC) wird um 1 erniedrigt und P_DAMAGED um 1 erhoeht.
+   P_QUALITY "quality"
 
-BEISPIEL:
-     inherit "/std/weapon";
 
+DEFINIERT IN
+============
+
+   <combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Ruestungen und Waffen koennen im Eifer des Gefechts beschaedigt werden.
+   Setzt man die Property P_QUALITY auf einen Wert n (n>0), so wird
+   eine Waffe (Ruestung) bei jedem n-ten Schlag (Treffer) beschaedigt,
+   d.h. P_WC (P_AC) wird um 1 erniedrigt und P_DAMAGED um 1 erhoeht.
+
+
+BEISPIEL
+========
+
+   inherit "/std/weapon";
+
+   ...
+   #include <combat.h>
+
+   create()
+   {
      ...
-     #include <combat.h>
+     SetProp(P_QUALITY,200);
+     ...
+   }
 
-     create()
-     {
-       ...
-       SetProp(P_QUALITY,200);
-       ...
-     }
+   Diese Waffe wuerde bei jedem 200. Schlag etwas beschaedigt.
 
-     Diese Waffe wuerde bei jedem 200. Schlag etwas beschaedigt.
 
-BEMERKUNG:
-     Defaultmaessig ist P_QUALITY auf 0 gesetzt, d.h. die entspr.
-     Waffe/Ruestung wird nicht beschaedigt.
+BEMERKUNG
+=========
 
-SIEHE AUCH:
-     /std/armour.c, /std/weapon.c, TakeFlaw(), QueryFlaw(), Damage()
+   Defaultmaessig ist P_QUALITY auf 0 gesetzt, d.h. die entspr.
+   Waffe/Ruestung wird nicht beschaedigt.
 
-----------------------------------------------------------------------------
+
+SIEHE AUCH
+==========
+
+   /std/armour.c, /std/weapon.c, TakeFlaw(), QueryFlaw(), Damage()
+
 Last modified: Thu May 22 10:42:39 1997 by Paracelsus
diff --git a/doc/props/P_QUESTS b/doc/props/P_QUESTS
index 446ea90..84fe435 100644
--- a/doc/props/P_QUESTS
+++ b/doc/props/P_QUESTS
@@ -1,8 +1,21 @@
-NAME:
-    P_QUESTS                      "quests"                      
 
-DEFINIERT IN:
-    /sys/player/quest.h
+P_QUESTS
+********
 
-BESCHREIBUNG:
-     Liste der geloesten Quests.
+
+NAME
+====
+
+   P_QUESTS                      "quests"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/quest.h
+
+
+BESCHREIBUNG
+============
+
+   Liste der geloesten Quests.
diff --git a/doc/props/P_QUEST_ITEM b/doc/props/P_QUEST_ITEM
index e4eebb5..135954b 100644
--- a/doc/props/P_QUEST_ITEM
+++ b/doc/props/P_QUEST_ITEM
@@ -1,46 +1,73 @@
-NAME:
-	P_QUEST_ITEM				"quest_item" 
 
-DEFINIERT IN:
-	/sys/quest_items.h
+P_QUEST_ITEM
+************
 
-BESCHREIBUNG:
-        Diese Property gibt an, ob es sich bei dem Objekt um ein Quest-
-	relevantes Objekt handelt.
-	
-BEISPIEL:
-        Ein Schwert (Notung) koennte folgendermassen definiert sein:
 
-	create()
-	{
-	  ::create() ;
-	  SetProp(P_SHORT, "Notung das neidliche Schwert") ;
-	  SetProp(P_LONG, "Das aus seinen Truemmern neu geschmiedete Schwert " 
-	                  "Notung.\n");
+NAME
+====
 
-	  SetProp(P_NAME, "Notung");
-	  SetProp(P_GENDER, NEUTER);
-	  SetProp(P_ARTICLE,0);
-	  AddId(({"notung","schwert","Notung", "\nNotung"}));
-	
-	  SetProp(P_WEAPON_TYPE, WT_SWORD);
-	  SetProp(P_DAM_TYPE, DT_BLUDGEON);
+   P_QUEST_ITEM                            "quest_item"
 
-	  SetProp(P_QUEST_ITEM,QI_OBJ);
-	  ...
-	}
-	    
-	Andere Magier koennen nun auf Notung Ruecksicht nehmen, und zum
-	Beispiel davon absehen, es bei einem NPC-Spell zu destructen.
 
-BEMERKUNGEN:
-        Alle questrelevanten Objekte sollten auf diese Weise markiert werden.
-	
-	Questrelevante Objekte anderer Magier sollten immer mit Vorsicht 
-	behandelt werden.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-	"/sys/quest_items.h"
+   /sys/quest_items.h
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   Diese Property gibt an, ob es sich bei dem Objekt um ein Quest-
+   relevantes Objekt handelt.
+
+
+BEISPIEL
+========
+
+   Ein Schwert (Notung) koennte folgendermassen definiert sein:
+
+   create()
+   {
+     ::create() ;
+     SetProp(P_SHORT, "Notung das neidliche Schwert") ;
+     SetProp(P_LONG, "Das aus seinen Truemmern neu geschmiedete Schwert "
+                     "Notung.\n");
+
+     SetProp(P_NAME, "Notung");
+     SetProp(P_GENDER, NEUTER);
+     SetProp(P_ARTICLE,0);
+     AddId(({"notung","schwert","Notung", "\nNotung"}));
+
+
+
+     SetProp(P_WEAPON_TYPE, WT_SWORD);
+     SetProp(P_DAM_TYPE, DT_BLUDGEON);
+
+     SetProp(P_QUEST_ITEM,QI_OBJ);
+     ...
+   }
+
+
+
+   Andere Magier koennen nun auf Notung Ruecksicht nehmen, und zum
+   Beispiel davon absehen, es bei einem NPC-Spell zu destructen.
+
+
+BEMERKUNGEN
+===========
+
+   Alle questrelevanten Objekte sollten auf diese Weise markiert werden.
+
+
+
+   Questrelevante Objekte anderer Magier sollten immer mit Vorsicht
+   behandelt werden.
+
+
+SIEHE AUCH
+==========
+
+   "/sys/quest_items.h"
+
 Last modified: Thu Jul 10 07:08:32 2003 by Vanion
diff --git a/doc/props/P_RACE b/doc/props/P_RACE
index 7ed77cd..c6aebc7 100644
--- a/doc/props/P_RACE
+++ b/doc/props/P_RACE
@@ -1,30 +1,48 @@
-NAME:
-	P_RACE				"race"
 
-DEFINIERT IN:
-	/sys/living/description.h
+P_RACE
+******
 
-BESCHREIBUNG:
-	Die Rasse eines Lebewesens kann ueber diese Property ermittelt bzw.
-	gesetzt werden. Es empfiehlt sich hierbei, Rassen nur in Form von
-	grossgeschriebenen Strings zu setzen. Leichen erhalten mittels
-	dieser Property automatisch die Rasse der Lebewesen, aus denen sie
-	hervorgegangen sind.
-	Der Sinn des Ganzen liegt darin, das Spiel differenzierter zu
-	gestalten und auf Rassenspezifika einzugehen. Zum Beispiel koennen
-	Elfen weniger Alkohol vertragen als Zwerge, was in '/std/pub'
-	beruecksichtigt wurde.
 
-BEISPIEL:
-	void create()
-	{ ::create();
-	  // Definitionen
-	  SetProp(P_RACE,"Ork");
-	  // weitere Definitionen
-	}
+NAME
+====
 
-SIEHE AUCH:
-	/std/npc.c, /std/pub.c
+   P_RACE                          "race"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+   Die Rasse eines Lebewesens kann ueber diese Property ermittelt bzw.
+   gesetzt werden. Es empfiehlt sich hierbei, Rassen nur in Form von
+   grossgeschriebenen Strings zu setzen. Leichen erhalten mittels
+   dieser Property automatisch die Rasse der Lebewesen, aus denen sie
+   hervorgegangen sind.
+   Der Sinn des Ganzen liegt darin, das Spiel differenzierter zu
+   gestalten und auf Rassenspezifika einzugehen. Zum Beispiel koennen
+   Elfen weniger Alkohol vertragen als Zwerge, was in '/std/pub'
+   beruecksichtigt wurde.
+
+
+BEISPIEL
+========
+
+   void create()
+   { ::create();
+     // Definitionen
+     SetProp(P_RACE,"Ork");
+     // weitere Definitionen
+   }
+
+
+SIEHE AUCH
+==========
+
+   /std/npc.c, /std/pub.c
+
 Last modified: Mon Sep 15 21:15:49 2003 by Vanion
diff --git a/doc/props/P_RACESTRING b/doc/props/P_RACESTRING
index b75f46b..2a13577 100644
--- a/doc/props/P_RACESTRING
+++ b/doc/props/P_RACESTRING
@@ -1,9 +1,22 @@
-NAME:
-    P_RACESTRING                  "racestring"                  
 
-DEFINIERT IN:
-    /sys/properties.h
+P_RACESTRING
+************
 
-BESCHREIBUNG:
-     Gibt eine dem Geschlecht angepasste Beschreibung der Rasse zurueck
-     ("Zwerg" oder "Zwergin" etc.)
+
+NAME
+====
+
+   P_RACESTRING                  "racestring"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt eine dem Geschlecht angepasste Beschreibung der Rasse zurueck
+   ("Zwerg" oder "Zwergin" etc.)
diff --git a/doc/props/P_RACE_DESCRIPTION b/doc/props/P_RACE_DESCRIPTION
index 5b2ebfb..ca1f576 100644
--- a/doc/props/P_RACE_DESCRIPTION
+++ b/doc/props/P_RACE_DESCRIPTION
@@ -1,8 +1,21 @@
-NAME:
-    P_RACE_DESCRIPTION            "racedescr"                   
 
-DEFINIERT IN:
-    /sys/properties.h
+P_RACE_DESCRIPTION
+******************
 
-BESCHREIBUNG:
-     Beschreibung der Vor/Nachteile einer Rasse.
+
+NAME
+====
+
+   P_RACE_DESCRIPTION            "racedescr"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Beschreibung der Vor/Nachteile einer Rasse.
diff --git a/doc/props/P_RANGE b/doc/props/P_RANGE
index 7fd5268..2fabc63 100644
--- a/doc/props/P_RANGE
+++ b/doc/props/P_RANGE
@@ -1,26 +1,43 @@
+
 P_RANGE
+*******
 
-NAME:
-    P_RANGE     "range"
 
-DEFINIERT IN:
-    <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-    Legt die Reichweite einer Schusswaffe fest. Ist ein Schuetze in einem
-    Raum mit gueltigem P_TARGET_AREA (andere Raum) oder environment() und
-    ist fuer diesen Raum P_SHOOTING_AREA festgelegt, dann kann er mit seiner
-    Schusswaffe in diesen anderen Raum schiessen, wenn die P_RANGE groesser
-    als P_SHOOTING_AREA ist.
+   P_RANGE     "range"
 
-BEISPIELE:
-    // Langbogen mit 100 Reichweite
-    SetProp(P_RANGE, 100);
 
-SIEHE AUCH:
-    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
-    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
-    Gebiet:    P_SHOOTING_AREA, P_TARGET_AREA
-    Sonstiges: fernwaffen
+DEFINIERT IN
+============
+
+   <combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Legt die Reichweite einer Schusswaffe fest. Ist ein Schuetze in einem
+   Raum mit gueltigem P_TARGET_AREA (andere Raum) oder environment() und
+   ist fuer diesen Raum P_SHOOTING_AREA festgelegt, dann kann er mit seiner
+   Schusswaffe in diesen anderen Raum schiessen, wenn die P_RANGE groesser
+   als P_SHOOTING_AREA ist.
+
+
+BEISPIELE
+=========
+
+   // Langbogen mit 100 Reichweite
+   SetProp(P_RANGE, 100);
+
+
+SIEHE AUCH
+==========
+
+   Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
+   Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+   Gebiet:    P_SHOOTING_AREA, P_TARGET_AREA
+   Sonstiges: fernwaffen
 
 29.Jul 2014 Gloinson
diff --git a/doc/props/P_READ_DETAILS b/doc/props/P_READ_DETAILS
index 035a2cc..06a7598 100644
--- a/doc/props/P_READ_DETAILS
+++ b/doc/props/P_READ_DETAILS
@@ -1,21 +1,40 @@
-NAME:
-    P_READ_DETAILS                "read_details"                
 
-DEFINIERT IN:
-    /sys/thing/description.h
+P_READ_DETAILS
+**************
 
-BESCHREIBUNG:
-    Mapping mit den Daten der Details, die durch Lesen ermittelt werden
-    koennen.
 
-BEMERKUNGEN:
-    Bitte nur mit den entsprechenden Methoden veraendern!
+NAME
+====
 
-SIEHE AUCH:
-    Setzen:    AddReadDetail()
-    Loeschen:  RemoveReadDetail()
-    Aehnlich:  AddDetail(), P_DETAILS
-    Veraltet:  P_READ_MSG
-    Sonstiges: GetDetail(), break_string()
+   P_READ_DETAILS                "read_details"
 
-27. Jan 2013 Gloinson
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Mapping mit den Daten der Details, die durch Lesen ermittelt werden
+   koennen.
+
+
+BEMERKUNGEN
+===========
+
+   Bitte nur mit den entsprechenden Methoden veraendern!
+
+
+SIEHE AUCH
+==========
+
+   Setzen:    AddReadDetail()
+   Loeschen:  RemoveReadDetail()
+   Aehnlich:  AddDetail(), P_DETAILS
+   Veraltet:  P_READ_MSG
+   Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
diff --git a/doc/props/P_READ_NEWS b/doc/props/P_READ_NEWS
index b64a252..8c69c89 100644
--- a/doc/props/P_READ_NEWS
+++ b/doc/props/P_READ_NEWS
@@ -1,8 +1,21 @@
-NAME:
-    P_READ_NEWS                   "read_news"                   
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_READ_NEWS
+***********
 
-BESCHREIBUNG:
-     Welche Artikel bereits gelesen wurde (frueher: in der MPA)
+
+NAME
+====
+
+   P_READ_NEWS                   "read_news"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Welche Artikel bereits gelesen wurde (frueher: in der MPA)
diff --git a/doc/props/P_REAL_RACE b/doc/props/P_REAL_RACE
index 88279a6..39c196a 100644
--- a/doc/props/P_REAL_RACE
+++ b/doc/props/P_REAL_RACE
@@ -1,72 +1,95 @@
-NAME:
-	P_REAL_RACE				"real_race"
 
-DEFINIERT IN:
-	/sys/living/description.h
-
-BESCHREIBUNG:
-        Diese Property enthaelt die Rasse des Livings. Sie darf nicht durch 
-	Shadows ueberschrieben werden.
-	
-	Wirklich interessant ist sie, wenn ein Spieler sich tarnt. Dort kann
-	man mit dieser Property trotz Tarnung feststellen, welche Rasse der
-	Spieler hat.
-
-	Bei NPC enthaelt sie den gleichen Wert wie P_RACE. Wenn P_REAL_RACE
-	allerdings gesetzt wird, kann man damit einen getarnten NPC simu-
-	lieren, da dann P_RACE und P_REAL_RACE voneinander abweichen.
-	
-BEISPIEL:
-        Ein Zwerg mag Zwergenbrot, fuer Elfen ist es giftig. Selbst wenn der
-	Elf sich als Zwerg tarnt, wird ihm durch lembas sicher uebel werden:
-
-        int futter(string arg)
-        {
-          notify_fail("Was willst Du essen?\n");
-          if(!arg || !id(arg)) return 0;
-
-          notify_fail("Du kannst nichts mehr essen.\n");
-          if(!this_player()->eat_food(55)) return 0;
-
-          write("Du isst ein Stueck Zwegenbrot. Du versuchst es zumindest!\n");
-          say(sprintf("%s beisst in ein Stueck Zwergenbrot. Zahnschmerz!!!\n",
-              this_player()->Name()));
+P_REAL_RACE
+***********
 
 
-          switch( this_player()->QueryProp(P_REAL_RACE) )
-          {
-          case "Zwerg":
-	    if ((this_player()->QueryProp(P_RACE))!="Zwerg")
-	      write("Zur Tarnung spuckst Du etwas von dem Brot aus!\n"); 
-            this_player()->buffer_hp(100,10);
-            this_player()->buffer_sp(100,10);
-            break;
+NAME
+====
 
-          case "Elf":
-	    write("Das Zwergenbrot brennt wie Feuer auf Deiner Zunge!");
-	    // Getarnt?
-	    if ((this_player()->QueryProp(P_RACE))!="Elf")
-	      write(" Deine Tarnung nutzt Dir da wenig.\n"
-            else write("\n");
-            this_player()->restore_spell_points(-100);
-            this_player()->do_damage(100,this_object());
-            break;
+   P_REAL_RACE                             "real_race"
 
-          default:
-	    write("Du bekommst nur wenig davon herunter..\n");
-            this_player()->buffer_hp(10,1);
-            this_player()->buffer_sp(10,2);
-            break;
-          }
-  
-          remove();
-  
-          return 1;
-        }
 
-	
-SIEHE AUCH:
-	/std/living/description.c, /sys/living/description.h, P_RACE
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt die Rasse des Livings. Sie darf nicht durch
+   Shadows ueberschrieben werden.
+
+
+
+   Wirklich interessant ist sie, wenn ein Spieler sich tarnt. Dort kann
+   man mit dieser Property trotz Tarnung feststellen, welche Rasse der
+   Spieler hat.
+
+   Bei NPC enthaelt sie den gleichen Wert wie P_RACE. Wenn P_REAL_RACE
+   allerdings gesetzt wird, kann man damit einen getarnten NPC simu-
+   lieren, da dann P_RACE und P_REAL_RACE voneinander abweichen.
+
+
+BEISPIEL
+========
+
+   Ein Zwerg mag Zwergenbrot, fuer Elfen ist es giftig. Selbst wenn der
+   Elf sich als Zwerg tarnt, wird ihm durch lembas sicher uebel werden:
+
+   int futter(string arg)
+   {
+     notify_fail("Was willst Du essen?\n");
+     if(!arg || !id(arg)) return 0;
+
+     notify_fail("Du kannst nichts mehr essen.\n");
+     if(!this_player()->eat_food(55)) return 0;
+
+     write("Du isst ein Stueck Zwegenbrot. Du versuchst es zumindest!\n");
+     say(sprintf("%s beisst in ein Stueck Zwergenbrot. Zahnschmerz!!!\n",
+         this_player()->Name()));
+
+
+     switch( this_player()->QueryProp(P_REAL_RACE) )
+     {
+     case "Zwerg":
+       if ((this_player()->QueryProp(P_RACE))!="Zwerg")
+         write("Zur Tarnung spuckst Du etwas von dem Brot aus!\n");
+       this_player()->buffer_hp(100,10);
+       this_player()->buffer_sp(100,10);
+       break;
+
+     case "Elf":
+       write("Das Zwergenbrot brennt wie Feuer auf Deiner Zunge!");
+       // Getarnt?
+       if ((this_player()->QueryProp(P_RACE))!="Elf")
+         write(" Deine Tarnung nutzt Dir da wenig.\n"
+       else write("\n");
+       this_player()->restore_spell_points(-100);
+       this_player()->do_damage(100,this_object());
+       break;
+
+     default:
+       write("Du bekommst nur wenig davon herunter..\n");
+       this_player()->buffer_hp(10,1);
+       this_player()->buffer_sp(10,2);
+       break;
+     }
+
+
+
+     remove();
+
+
+
+     return 1;
+   }
+
+
+SIEHE AUCH
+==========
+
+   /std/living/description.c, /sys/living/description.h, P_RACE
+
 Last modified: Mon Sep 15 21:15:49 2003 by Vanion
diff --git a/doc/props/P_REFERENCE_OBJECT b/doc/props/P_REFERENCE_OBJECT
index e2a6405..9187a49 100644
--- a/doc/props/P_REFERENCE_OBJECT
+++ b/doc/props/P_REFERENCE_OBJECT
@@ -1,27 +1,41 @@
+
 P_REFERENCE_OBJECT
-NAME:
-     P_REFERENCE_OBJECT            "reference_object"
+******************
 
-DEFINIERT IN:
-     /sys/player/description.h
 
-BESCHREIBUNG:
-     In dieser Propertie wird das aktuelle Bezugsobjekt eines Spielers 
-     gespeichert. Untersucht der Spieler ein Monster, so ist dies das 
-     Monsterobjekt, untersucht der Spieler sich selber, ist es das 
-     Spielerobjekt.
+NAME
+====
 
-     Der Inhalt dieser Propertie besteht also immer aus dem zuletzt 
-     betrachteten Objekt. Sei es ein Raum, eine Ruestung, ein Monster oder 
-     was auch immer. Bewegungsbefehle und andere Kommandos werden nicht 
-     beruecksichtigt.
+   P_REFERENCE_OBJECT            "reference_object"
 
-     Einzig wenn der Spieler 'schau' tippt, wird der Inhalt der Propertie 
-     geloescht und betraegt 0.
 
-SIEHE AUCH:
-     Sonstiges:		P_INT_LONG, P_LONG, P_SHORT
-			int_long(), long(), short(), make_invlist()
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   /sys/player/description.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Propertie wird das aktuelle Bezugsobjekt eines Spielers
+   gespeichert. Untersucht der Spieler ein Monster, so ist dies das
+   Monsterobjekt, untersucht der Spieler sich selber, ist es das
+   Spielerobjekt.
+
+   Der Inhalt dieser Propertie besteht also immer aus dem zuletzt
+   betrachteten Objekt. Sei es ein Raum, eine Ruestung, ein Monster oder
+   was auch immer. Bewegungsbefehle und andere Kommandos werden nicht
+   beruecksichtigt.
+
+   Einzig wenn der Spieler 'schau' tippt, wird der Inhalt der Propertie
+   geloescht und betraegt 0.
+
+
+SIEHE AUCH
+==========
+
+   Sonstiges:         P_INT_LONG, P_LONG, P_SHORT
+                      int_long(), long(), short(), make_invlist()
+
 Letzte Aenderung: 29.06.02, 23:50:00 h, von Tilly
diff --git a/doc/props/P_REJECT b/doc/props/P_REJECT
index 4af07f3..072bdab 100644
--- a/doc/props/P_REJECT
+++ b/doc/props/P_REJECT
@@ -1,51 +1,72 @@
-NAME:
-	P_REJECT			"reject"
 
-DEFINIERT IN:
-	/sys/properties.h
+P_REJECT
+********
 
-BESCHREIBUNG:
-	Diese Property zeigt standardmaessig nur in NPCs eine Wirkung. Mit
-	ihr laesst sich sehr einfach einstellen, wie sich ein solcher NPC
-	gegenueber Gegenstaenden verhalten soll, welche ihm zugesteckt
-	werden. Hierbei besteht die Property aus 2 Elementen, welche
-	bestimmt, was der NPC mit Dingen tuen soll, die ihm gegeben werden.
-	Standardmaessig behaelt der NPC die Sachen einfach.
-	Folgende Moeglichkeiten gibt es ausserdem:
-	  1. Arrayelement: Art der Handlung. (aus "/sys/moving.h")
-	    REJECT_GIVE: Der NPC gibt das Objekt zurueck.
-	    REJECT_DROP: Der NPC laesst das Objekt fallen.
-	    REJECT_KEEP: Der NPC behaelt das Objekt doch.
-	    REJECT_LIGHT_MODIFIER: Der NPC nimmt keine Gegenstaende an, die
-	      sein Lichtlevel veraendern und damit Einfluss auf sein
-	      Kampfverhalten haben koennten.
-	  2. Arrayelement: Meldung, mit welcher der NPC die Handlung
-	                   kommentiert.
-	    Der Meldung wird nichts automatisch vorangestellt und ein
-	    abschliessender Zeilenumbruch ist ebenfalls selbstaendig
-	    vorzunehmen. Mit einem Leerstring ist somit auch gar keine
-	    Rueckmeldung moeglich.
 
-BEISPIEL:
-	Der NPC schmeisst alle ihm gegebenen Gegenstaende einfach weg:
-	  void create()
-	  { ::create();
-	    ...
-	    SetProp(P_REJECT,({REJECT_GIVE,
-	    Name(WER)+" murmelt: Was soll ich denn damit?!\n"}));
-	    ...
-	  }
-	Manchmal ist das recht nuetzlich, z.B. kann man so eigentlich schwer
-	zu toetende NPCs dagegen schuetzen, dass man ihnen angezuendetes
-	Dynamit oder aehnliches ueberreicht.
+NAME
+====
 
-BEMERKUNGEN:
-	Innerhalb von NPCs ist die Funktion give_notify() fuer die
-	automatische Auswertung dieser Property verantwortlich; das sollte
-	man insbesondere beim Ueberschreiben dieser Funktion beachten!
+   P_REJECT                        "reject"
 
-SIEHE AUCH:
-	give_notify(), /std/npc/put_and_get.c
 
------------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property zeigt standardmaessig nur in NPCs eine Wirkung. Mit
+   ihr laesst sich sehr einfach einstellen, wie sich ein solcher NPC
+   gegenueber Gegenstaenden verhalten soll, welche ihm zugesteckt
+   werden. Hierbei besteht die Property aus 2 Elementen, welche
+   bestimmt, was der NPC mit Dingen tuen soll, die ihm gegeben werden.
+   Standardmaessig behaelt der NPC die Sachen einfach.
+   Folgende Moeglichkeiten gibt es ausserdem:
+     1. Arrayelement: Art der Handlung. (aus "/sys/moving.h")
+       REJECT_GIVE: Der NPC gibt das Objekt zurueck.
+       REJECT_DROP: Der NPC laesst das Objekt fallen.
+       REJECT_KEEP: Der NPC behaelt das Objekt doch.
+       REJECT_LIGHT_MODIFIER: Der NPC nimmt keine Gegenstaende an, die
+         sein Lichtlevel veraendern und damit Einfluss auf sein
+         Kampfverhalten haben koennten.
+     2. Arrayelement: Meldung, mit welcher der NPC die Handlung
+                      kommentiert.
+       Der Meldung wird nichts automatisch vorangestellt und ein
+       abschliessender Zeilenumbruch ist ebenfalls selbstaendig
+       vorzunehmen. Mit einem Leerstring ist somit auch gar keine
+       Rueckmeldung moeglich.
+
+
+BEISPIEL
+========
+
+   Der NPC schmeisst alle ihm gegebenen Gegenstaende einfach weg:
+     void create()
+     { ::create();
+       ...
+       SetProp(P_REJECT,({REJECT_GIVE,
+       Name(WER)+" murmelt: Was soll ich denn damit?!\n"}));
+       ...
+     }
+   Manchmal ist das recht nuetzlich, z.B. kann man so eigentlich schwer
+   zu toetende NPCs dagegen schuetzen, dass man ihnen angezuendetes
+   Dynamit oder aehnliches ueberreicht.
+
+
+BEMERKUNGEN
+===========
+
+   Innerhalb von NPCs ist die Funktion give_notify() fuer die
+   automatische Auswertung dieser Property verantwortlich; das sollte
+   man insbesondere beim Ueberschreiben dieser Funktion beachten!
+
+
+SIEHE AUCH
+==========
+
+   give_notify(), /std/npc/put_and_get.c
+
 Last modified: Mon Apr 23 16:54:07 2001 by Patryn
diff --git a/doc/props/P_REMOVE_FUNC b/doc/props/P_REMOVE_FUNC
index 2d431fa..f5c2232 100644
--- a/doc/props/P_REMOVE_FUNC
+++ b/doc/props/P_REMOVE_FUNC
@@ -1,25 +1,40 @@
+
 P_REMOVE_FUNC
-
-NAME:
-     P_REMOVE_FUNC "remove_func"
-
-DEFINIERT IN:
-     <armour.h>
-
-BESCHREIBUNG:
-     Falls ein Objekt eine RemoveFunc() fuer die Ruestung oder Kleidung 
-     definiert, so muss dieses Objekt in dieser Property eingetragen sein.
-
-     Die Auswertung dieser Property erfolgt im Laufe des DoUnwear() in
-     der nicht-oeffentlichen Funktionen _check_unwear_restrictions().
-
-BEISPIELE:
-     Siehe das Beispiel zu RemoveFunc()
-
-SIEHE AUCH:
-     /std/armour.c, /std/clothing.c, clothing, armours
-     RemoveFunc()
+*************
 
 
-Letzte Aenderung:
-15.02.2009, Zesstra
\ No newline at end of file
+NAME
+====
+
+   P_REMOVE_FUNC "remove_func"
+
+
+DEFINIERT IN
+============
+
+   <armour.h>
+
+
+BESCHREIBUNG
+============
+
+   Falls ein Objekt eine RemoveFunc() fuer die Ruestung oder Kleidung
+   definiert, so muss dieses Objekt in dieser Property eingetragen sein.
+
+   Die Auswertung dieser Property erfolgt im Laufe des DoUnwear() in
+   der nicht-oeffentlichen Funktionen _check_unwear_restrictions().
+
+
+BEISPIELE
+=========
+
+   Siehe das Beispiel zu RemoveFunc()
+
+
+SIEHE AUCH
+==========
+
+   /std/armour.c, /std/clothing.c, clothing, armours
+   RemoveFunc()
+
+Letzte Aenderung: 15.02.2009, Zesstra
diff --git a/doc/props/P_REMOVE_MSG b/doc/props/P_REMOVE_MSG
index 9eb1d8d..78a1357 100644
--- a/doc/props/P_REMOVE_MSG
+++ b/doc/props/P_REMOVE_MSG
@@ -1,28 +1,49 @@
-NAME:
-     P_REMOVE_MSG                  "std_food_remove_msg"
 
-DEFINIERT IN:
-     <sys/food.h>
+P_REMOVE_MSG
+************
 
-BESCHREIBUNG:
-     Meldung, wenn eine verdorbene Speise gerade vernichtet wird.
-     Diese Meldung erscheint nur, wenn in P_DESTROY_BAD ein positiver
-     Integer-Wert gesetzt ist.
-     Befindet sich die Speise in einem Spieler, geht die Meldung an genau
-     diesen, liegt die Speise im Raum, geht die Meldung an alle anwesenden
-     Spieler.
-     
-BEMERKUNGEN:
-     Diese Meldung wird von replace_personal mit den Argumenten:
-     1. Speise
-     2. Konsument
-     verarbeitet, kann als entsprechende Platzhalter enthalten
-     
-DEFAULT:
-     "@WER1 zerfaellt zu Staub."
 
-SIEHE AUCH:
-     P_DESTROY_BAD, wiz/food, replace_personal
+NAME
+====
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+   P_REMOVE_MSG                  "std_food_remove_msg"
+
+
+DEFINIERT IN
+============
+
+   <sys/food.h>
+
+
+BESCHREIBUNG
+============
+
+   Meldung, wenn eine verdorbene Speise gerade vernichtet wird.
+   Diese Meldung erscheint nur, wenn in P_DESTROY_BAD ein positiver
+   Integer-Wert gesetzt ist.
+   Befindet sich die Speise in einem Spieler, geht die Meldung an genau
+   diesen, liegt die Speise im Raum, geht die Meldung an alle anwesenden
+   Spieler.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Meldung wird von replace_personal mit den Argumenten:
+   1. Speise
+   2. Konsument
+   verarbeitet, kann als entsprechende Platzhalter enthalten
+
+
+DEFAULT
+=======
+
+   "@WER1 zerfaellt zu Staub."
+
+
+SIEHE AUCH
+==========
+
+   P_DESTROY_BAD, wiz/food, replace_personal
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_RESET_LIFETIME b/doc/props/P_RESET_LIFETIME
index 378cf0c..bbd4bbe 100644
--- a/doc/props/P_RESET_LIFETIME
+++ b/doc/props/P_RESET_LIFETIME
@@ -1,31 +1,52 @@
-NAME:
-     P_RESET_LIFETIME              "std_food_lifetime_reset"
-
-DEFINIERT IN:
-     /sys/food.h
-
-BESCHREIBUNG:
-     Zeit in Resets, die die Speise haltbar ist.
-     Jeder einzelne Reset wird in seiner Laenge zufaellig festgelegt und
-     zu einer Gesamtanzahl von Sekunden zusammengefasst. Diese Zeit in
-     Sekunden wird dann in P_LIFETIME gespeichert.
-     Nach dieser Zeit wird diese Speise schlecht und je nach Konfiguration
-     der Speise eventuell zerstoert. Sichergestellt wird dies durch den
-     Aufruf von reset() nach dieser Anzahl "Resets".
-     Moechte man eine Speise haben, die niemals verdirbt
-     (genehmigungspflichtig!), nutzt man die Property P_NO_BAD
-     
-BEMERKUNGEN:
-     Sobald der Countdown zum Schlechtwerden der Speise laeuft, also ein
-     Spieler damit in Beruehrung kam, zeigt SetProp auf diese Property keine
-     Wirkung mehr.
-
-DEFAULT:
-     Ohne Setzen von P_LIFETIME ,P_RESET_LIFETIME und P_NO_BAD verdirbt die
-     Speise nach einem Reset, also zwischen 30 und 60 Minuten
-
-SIEHE AUCH:
-     wiz/food, P_LIFETIME, P_NO_BAD
-
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+
+P_RESET_LIFETIME
+****************
+
+
+NAME
+====
+
+   P_RESET_LIFETIME              "std_food_lifetime_reset"
+
+
+DEFINIERT IN
+============
+
+   /sys/food.h
+
+
+BESCHREIBUNG
+============
+
+   Zeit in Resets, die die Speise haltbar ist.
+   Jeder einzelne Reset wird in seiner Laenge zufaellig festgelegt und
+   zu einer Gesamtanzahl von Sekunden zusammengefasst. Diese Zeit in
+   Sekunden wird dann in P_LIFETIME gespeichert.
+   Nach dieser Zeit wird diese Speise schlecht und je nach Konfiguration
+   der Speise eventuell zerstoert. Sichergestellt wird dies durch den
+   Aufruf von reset() nach dieser Anzahl "Resets".
+   Moechte man eine Speise haben, die niemals verdirbt
+   (genehmigungspflichtig!), nutzt man die Property P_NO_BAD
+
+
+BEMERKUNGEN
+===========
+
+   Sobald der Countdown zum Schlechtwerden der Speise laeuft, also ein
+   Spieler damit in Beruehrung kam, zeigt SetProp auf diese Property keine
+   Wirkung mehr.
+
+
+DEFAULT
+=======
+
+   Ohne Setzen von P_LIFETIME ,P_RESET_LIFETIME und P_NO_BAD verdirbt die
+   Speise nach einem Reset, also zwischen 30 und 60 Minuten
+
+
+SIEHE AUCH
+==========
+
+   wiz/food, P_LIFETIME, P_NO_BAD
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_RESISTANCE b/doc/props/P_RESISTANCE
index ff3de74..48e476f 100644
--- a/doc/props/P_RESISTANCE
+++ b/doc/props/P_RESISTANCE
@@ -1,37 +1,61 @@
+
 P_RESISTANCE
-NAME:
-     P_RESISTANCE                  "resistance"
+************
 
-DEFINIERT IN:
-     /sys/living/combat.h
 
-WICHTIG:
-     DIESE PROPERTY IST VERALTET! BITTE P_RESISTANCE_STRENGTHS
-     VERWENDEN! AUCH FUNKTIONIERT Set() NICHT WIE ES SOLLTE.
+NAME
+====
 
-BESCHREIBUNG:
-     Hiermit koennen die Resistenzen eines Lebewesens sehr einfach gesetzt
-     werden. Es kann ein Array mit Schadensarten gesetzt werden, jeder
-     Eintrag eines Schadens verdoppelt die Resistenz gegen diesen.
+   P_RESISTANCE                  "resistance"
 
-BEMERKUNGEN:
-     - P_RESISTANCE_STRENGTHS spiegelt diese Eintraege hier wieder
-     - um genauere Werte anzugeben einen AddResistanceModifier() oder
-       P_RESISTANCE_STRENGTHS benutzen.
-     - P_RESISTANCE kann und wird nicht aus P_RESISTANCE_STRENGTHS
-       upgedatet
 
-BEISPIELE:
-     // ein NPC mit halbierter Feuerempfindlichkeit und
-     // geviertelter Windempfindlichkeit
-     SetProp(P_RESISTANCE, ({DT_FIRE, DT_AIR, DT_AIR}));
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     simple Resistenz:	P_RESISTANCE
-     Modifikatoren:	AddResistanceModifier, RemoveResistanceModifier(),
-			P_RESISTANCE_MODIFIER
-     Hauptmapping:	P_RESISTANCE_STRENGTHS
-     Berechnung:	CheckResistance(), UpdateResistanceStrengths()
-     anderes:		balance, /std/armour/combat.c, /std/living/combat.c
+   /sys/living/combat.h
+
+
+WICHTIG
+=======
+
+   DIESE PROPERTY IST VERALTET! BITTE P_RESISTANCE_STRENGTHS
+   VERWENDEN! AUCH FUNKTIONIERT Set() NICHT WIE ES SOLLTE.
+
+
+BESCHREIBUNG
+============
+
+   Hiermit koennen die Resistenzen eines Lebewesens sehr einfach gesetzt
+   werden. Es kann ein Array mit Schadensarten gesetzt werden, jeder
+   Eintrag eines Schadens verdoppelt die Resistenz gegen diesen.
+
+
+BEMERKUNGEN
+===========
+
+   - P_RESISTANCE_STRENGTHS spiegelt diese Eintraege hier wieder
+   - um genauere Werte anzugeben einen AddResistanceModifier() oder
+     P_RESISTANCE_STRENGTHS benutzen.
+   - P_RESISTANCE kann und wird nicht aus P_RESISTANCE_STRENGTHS
+     upgedatet
+
+
+BEISPIELE
+=========
+
+   // ein NPC mit halbierter Feuerempfindlichkeit und
+   // geviertelter Windempfindlichkeit
+   SetProp(P_RESISTANCE, ({DT_FIRE, DT_AIR, DT_AIR}));
+
+
+SIEHE AUCH
+==========
+
+   simple Resistenz:  P_RESISTANCE
+   Modifikatoren:     AddResistanceModifier, RemoveResistanceModifier(),
+                      P_RESISTANCE_MODIFIER
+   Hauptmapping:      P_RESISTANCE_STRENGTHS
+   Berechnung:        CheckResistance(), UpdateResistanceStrengths()
+   anderes:           balance, /std/armour/combat.c, /std/living/combat.c
 
 1.Dez 2004, Gloinson
diff --git a/doc/props/P_RESISTANCE_MODIFIER b/doc/props/P_RESISTANCE_MODIFIER
index 0a0538e..2a3322e 100644
--- a/doc/props/P_RESISTANCE_MODIFIER
+++ b/doc/props/P_RESISTANCE_MODIFIER
@@ -1,26 +1,45 @@
-NAME:
-     P_RESISTANCE_MODIFIER             "rstr:mod"
 
-DEFINIERT IN:
-     /sys/living/combat.h
+P_RESISTANCE_MODIFIER
+*********************
 
-BESCHREIBUNG:
-     Hier werden die Resistenzmodifikatoren in einem Mapping abgespeichert.
 
-     Format:
+NAME
+====
 
-     (["me":<Aufaddition aller Resistenz/Empfindlichkeitsmodifikationen>;0,
-       "<Objektname>#<Schluessel>":<Resistenzmapping>;<Objekreferenz>,
-       ...])
+   P_RESISTANCE_MODIFIER             "rstr:mod"
 
-BEMERKUNGEN:
-     Nur ueber AddResistanceModifier(), RemoveResistanceModifier() aendern!
 
-SIEHE AUCH:
-     Modifikatoren:	AddResistanceModifier, RemoveResistanceModifier()
-     simple Resistenz:	P_RESISTANCE, P_VULNERABILITY
-     Hauptmapping:	P_RESISTANCE_STRENGTHS
-     Berechnung:	CheckResistance(), UpdateResistanceStrengths()
-     anderes:		balance, /std/armour/combat.c, /std/living/combat.c
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Hier werden die Resistenzmodifikatoren in einem Mapping abgespeichert.
+
+   Format:
+
+   (["me":<Aufaddition aller Resistenz/Empfindlichkeitsmodifikationen>;0,
+     "<Objektname>#<Schluessel>":<Resistenzmapping>;<Objekreferenz>,
+     ...])
+
+
+BEMERKUNGEN
+===========
+
+   Nur ueber AddResistanceModifier(), RemoveResistanceModifier() aendern!
+
+
+SIEHE AUCH
+==========
+
+   Modifikatoren:     AddResistanceModifier, RemoveResistanceModifier()
+   simple Resistenz:  P_RESISTANCE, P_VULNERABILITY
+   Hauptmapping:      P_RESISTANCE_STRENGTHS
+   Berechnung:        CheckResistance(), UpdateResistanceStrengths()
+   anderes:           balance, /std/armour/combat.c, /std/living/combat.c
 
 29.Apr 2002, Gloinson@MG
diff --git a/doc/props/P_RESISTANCE_STRENGTHS b/doc/props/P_RESISTANCE_STRENGTHS
index ed24d2d..4a93f08 100644
--- a/doc/props/P_RESISTANCE_STRENGTHS
+++ b/doc/props/P_RESISTANCE_STRENGTHS
@@ -1,92 +1,114 @@
-NAME:
-     P_RESISTANCE_STRENGTHS     "resistance_strengths"
 
-DEFINIERT IN:
-     /sys/living/combat.h
-
-BESCHREIBUNG:
-     Lebewesen:
-
-     Mapping mit Schadensarten, gegen die das Lebewesen resistent oder
-     anfaellig ist. Durch eine _query_method werden alle existierenden
-     Resistenzen hier zusammengefasst.
-
-     Die Staerke der Resistenz oder Anfaelligkeit wird numerisch aus-
-     gedrueckt:
-     - Resistenzen gehen bis von 0 bis -1.0 (absolute Resistenz)
-       - -0.5 == halbierter Schaden, -0.75 == geviertelter Schaden
-       -> in % des "aufgehaltenen" Schadens interpretierbar
-     - Empfindlichkeiten gehen von 0 bis MAX_INT
-       -  1.0 == verdoppelter Schaden, 3.0 == vervierfachter Schaden
-       -> als Faktor (x+1.0) interpretierbar
-
-     Ruestungen:
-
-     Mapping mit Prozentwerten der Maximalwerte fuer Ruestungen des
-     entsprechenden Typs. Dabei sind positive Werte Resistenzen und
-     negative Empfindlichkeiten. Dabei duerfen die Prozentwerte nur
-     im Bereich von +100 bis -800 (-1000 ?!) liegen.
-
-     Bei Ruestungen ist es damit unnoetig, Resistenzen mittels
-     AddResistanceModifier() im Traeger zu setzen, da dies bereits
-     in /std/armour automatisch gemacht wird. Der Schluessel fuer
-     den Eintrag ist dabei P_ARMOUR_TYPE.
-
-     Die Maximalwerte sind derzeit:
-      AT_CLOAK, AT_RING, AT_AMULET: max 10% Resistenz
-      AT_SHIELD, AT_ARMOUR:  max 15% Resistenz
-      alle anderen:   max 5% Resistenz
-
-BEMERKUNGEN:
-     Ruestungen:
-     * die Property muss _nach_ P_ARMOUR_TYPE gesetzt werden (_set-Method)
-
-     Lebewesen:
-     * -1.0 bedeutet bereits absolute Resistenz, bei kleineren Werten werden
-       die anderen Schadensanteile im Kampf u.U. nicht mehr wie gewuenscht
-       bilanziert. Bitte daher drauf verzichten. ;-)
-     * Aenderungen an P_RESISTANCE und P_VULNERABILITY werden direkt in 
-       P_RESISTANCE_STRENGTHS gespeichert:
-       -> daher niemals im Nachhinein bei fremden NPCs P_RESISTANCE_STRENGTHS
-          manipulieren, dafuer gibt es AddResistanceModifier
-     * QueryProp(P_RESISTANCE_STRENGTHS) enthaelt die gesamten Resistenzen
-       P_RESISTANCE, P_VULNERABILITY, P_RESISTANCE_MODIFIER (_query-Method)
-
-     Die Werte in P_RESISTANCE_STRENGTHS sollten nur in Ausnahmefaellen oder
-     gut begruendet den Hoechstwert haben. Ein Eiswesen kann zwar sehr
-     resistent gegen Kaelteschaden sein, sollte aber zu gleichem Teil auch
-     anfaellig auf Feuerschaden sein.
-
-     Auf dieser Property liegt eine Querymethode, welche eine Kopie der
-     Daten zurueckliefert.
-
-BEISPIELE:
-     // ein Eistroll
-     SetProp(P_RESISTANCE_STRENGTHS,([DT_FIRE:0.5,DT_COLD:-0.5,
-                                      DT_MAGIC:0.1]));
-
-     Feuerangriffe werden mit 1.5 multipliziert, magische mit 1.1 und
-     der Schadenswert von Kaelteangriffen wird halbiert. Zum Beispiel
-     wuerde
-     Defend(100, ({DT_FIRE,DT_MAGIC}), ...)
-     einen Schaden von 130 statt den normalen 100 verursachen.
+P_RESISTANCE_STRENGTHS
+**********************
 
 
-     // eine Eisruestung
-     SetProp(P_RESISTANCE_STRENGTHS, ([DT_COLD:50, DT_FIRE:-100]));
+NAME
+====
 
-     Dieses Kettenhemd schuetzt nun mit 50% des Maximalwertes gegen
-     Kaelte (also 0.5*15%=7,5% Resistenz) und macht mit dem Maximal-
-     wert anfaellig gegen Feuer (1*15%=15% Empfindlichkeit).
+   P_RESISTANCE_STRENGTHS     "resistance_strengths"
 
-     ! der Code spricht zusaetzlich von
-       Empfindlichkeit=(Empfindlichkeit/4)*5 -> 15/4*5=18.75% !
 
-SIEHE AUCH:
-     simple Resistenz: P_RESISTANCE, P_VULNERABILITY
-     Modifikatoren: AddResistanceModifier, RemoveResistanceModifier(),
-     P_RESISTANCE_MODIFIER
-     Berechnung: CheckResistance(), UpdateResistanceStrengths()
-     anderes:  balance, /std/armour/combat.c, /std/living/combat.c
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Lebewesen:
+
+   Mapping mit Schadensarten, gegen die das Lebewesen resistent oder
+   anfaellig ist. Durch eine _query_method werden alle existierenden
+   Resistenzen hier zusammengefasst.
+
+   Die Staerke der Resistenz oder Anfaelligkeit wird numerisch aus-
+   gedrueckt:
+   - Resistenzen gehen bis von 0 bis -1.0 (absolute Resistenz)
+     - -0.5 == halbierter Schaden, -0.75 == geviertelter Schaden
+     -> in % des "aufgehaltenen" Schadens interpretierbar
+   - Empfindlichkeiten gehen von 0 bis MAX_INT
+     -  1.0 == verdoppelter Schaden, 3.0 == vervierfachter Schaden
+     -> als Faktor (x+1.0) interpretierbar
+
+   Ruestungen:
+
+   Mapping mit Prozentwerten der Maximalwerte fuer Ruestungen des
+   entsprechenden Typs. Dabei sind positive Werte Resistenzen und
+   negative Empfindlichkeiten. Dabei duerfen die Prozentwerte nur
+   im Bereich von +100 bis -800 (-1000 ?!) liegen.
+
+   Bei Ruestungen ist es damit unnoetig, Resistenzen mittels
+   AddResistanceModifier() im Traeger zu setzen, da dies bereits
+   in /std/armour automatisch gemacht wird. Der Schluessel fuer
+   den Eintrag ist dabei P_ARMOUR_TYPE.
+
+   Die Maximalwerte sind derzeit:
+    AT_CLOAK, AT_RING, AT_AMULET: max 10% Resistenz
+    AT_SHIELD, AT_ARMOUR:  max 15% Resistenz
+    alle anderen:   max 5% Resistenz
+
+
+BEMERKUNGEN
+===========
+
+   Ruestungen:
+   * die Property muss _nach_ P_ARMOUR_TYPE gesetzt werden (_set-Method)
+
+   Lebewesen:
+   * -1.0 bedeutet bereits absolute Resistenz, bei kleineren Werten werden
+     die anderen Schadensanteile im Kampf u.U. nicht mehr wie gewuenscht
+     bilanziert. Bitte daher drauf verzichten. ;-)
+   * Aenderungen an P_RESISTANCE und P_VULNERABILITY werden direkt in
+     P_RESISTANCE_STRENGTHS gespeichert:
+     -> daher niemals im Nachhinein bei fremden NPCs P_RESISTANCE_STRENGTHS
+        manipulieren, dafuer gibt es AddResistanceModifier
+   * QueryProp(P_RESISTANCE_STRENGTHS) enthaelt die gesamten Resistenzen
+     P_RESISTANCE, P_VULNERABILITY, P_RESISTANCE_MODIFIER (_query-Method)
+
+   Die Werte in P_RESISTANCE_STRENGTHS sollten nur in Ausnahmefaellen oder
+   gut begruendet den Hoechstwert haben. Ein Eiswesen kann zwar sehr
+   resistent gegen Kaelteschaden sein, sollte aber zu gleichem Teil auch
+   anfaellig auf Feuerschaden sein.
+
+   Auf dieser Property liegt eine Querymethode, welche eine Kopie der
+   Daten zurueckliefert.
+
+
+BEISPIELE
+=========
+
+   // ein Eistroll
+   SetProp(P_RESISTANCE_STRENGTHS,([DT_FIRE:0.5,DT_COLD:-0.5,
+                                    DT_MAGIC:0.1]));
+
+   Feuerangriffe werden mit 1.5 multipliziert, magische mit 1.1 und
+   der Schadenswert von Kaelteangriffen wird halbiert. Zum Beispiel
+   wuerde
+   Defend(100, ({DT_FIRE,DT_MAGIC}), ...)
+   einen Schaden von 130 statt den normalen 100 verursachen.
+
+
+   // eine Eisruestung
+   SetProp(P_RESISTANCE_STRENGTHS, ([DT_COLD:50, DT_FIRE:-100]));
+
+   Dieses Kettenhemd schuetzt nun mit 50% des Maximalwertes gegen
+   Kaelte (also 0.5*15%=7,5% Resistenz) und macht mit dem Maximal-
+   wert anfaellig gegen Feuer (1*15%=15% Empfindlichkeit).
+
+   ! der Code spricht zusaetzlich von
+     Empfindlichkeit=(Empfindlichkeit/4)*5 -> 15/4*5=18.75% !
+
+
+SIEHE AUCH
+==========
+
+   simple Resistenz: P_RESISTANCE, P_VULNERABILITY
+   Modifikatoren: AddResistanceModifier, RemoveResistanceModifier(),
+   P_RESISTANCE_MODIFIER
+   Berechnung: CheckResistance(), UpdateResistanceStrengths()
+   anderes:  balance, /std/armour/combat.c, /std/living/combat.c
 
 6.Feb 2016 Gloinson
diff --git a/doc/props/P_RESTRICTIONS b/doc/props/P_RESTRICTIONS
index 34890ff..a1764b9 100644
--- a/doc/props/P_RESTRICTIONS
+++ b/doc/props/P_RESTRICTIONS
@@ -1,140 +1,163 @@
-NAME:
-    P_RESTRICTIONS                                "restrictions"
 
-DEFINIERT IN:
-    /sys/combat.h
-    (Die SR_*-Parameter sind in /sys/new_skills.h definiert.)
-
-BESCHREIBUNG:
-    Enthaelt ein mapping mit den zu pruefenden Einschraenkungen.
-
-    In dieser Property lassen sich Restriktionen setzen, die vor dem
-    Zuecken einer Waffe / Anziehen einer Ruestung oder Kleidung geprueft
-    werden und dies gegebenfalls verhindern, ohne gleich auf eine evtl.
-    vorhandene WieldFunc / WearFunc zuzugreifen.
-
-    Die Auswertung erfolgt ueber den Aufruf von check_restrictions()
-    in /std/restriction_checker.c
-
-    Folgende Keys werden in dem Mapping ausgewertet:
-
-    P_LEVEL
-      Mindeststufe, die das Lebewesen besitzen muss, um die Aktion
-      auszufuehren.
-    P_GUILD_LEVEL
-      Gildenlevel, das das Lebewesen mindestens erreicht haben muss, um die
-      Aktion auszufuehren.
-    SR_SEER
-      Ist gesetzt, wenn das Lebewesen Seher sein muss.
-      Auswertung nur fuer Interactives, NSC ignorieren das Flag.
-    P_XP
-      Mindestmenge an Erfahrungspunkten, die ein Lebewesen besitzen muss,
-      um die Aktion auszufuehren.
-    P_QP
-      Mindestmenge an Abenteuerpunkten, die das Lebewesen haben muss.
-    P_ALCOHOL
-      Menge an Alkohol, unter der der Alkoholspiegel des Lebewesen liegen
-      muss, um die Aktion noch ausfuehren zu koennen.
-    P_DRINK
-      Menge an Fluessigkeit, unter der der Fluessigkeitsspiegel des
-      Lebewesen liegen muss, um die Aktion noch ausfuehren zu koennen.
-    P_FOOD
-      Beinhaltet die Menge an Nahrung, unter der der Nahrungsspiegel des
-      Spielers liegen muss, um die Aktion noch ausfuehren zu koennen.
-    P_DEAF
-      Ist gesetzt, falls der Spieler nicht taub sein darf.
-    P_FROG
-      Ist gesetzt, falls der Spieler kein Frosch sein darf.
-    P_BLIND
-      Ist gesetzt, falls der Spieler nicht blind sein darf.
-      Achtung: das ist nicht gleichbedeutend mit dem Umstand, dass er evtl.
-      nichts mehr sehen kann. Auch andere Gruende (zum Beispiel Dunkelheit)
-      koennen bewirken, dass ein Spieler nichts mehr sieht.
-    A_INT, A_DEX, A_CON, A_STR
-      Jeweilige Mindesthoehe eines Attribut, um eine Aktion ausfuehren zu
-      koennen.
-    SR_BAD, SR_GOOD
-      Gibt an, wie [minimal] boese bzw. wie [maximal] gut ein Charakter sein
-      darf, um eine Aktion ausfuehren zu koennen.
-    SR_MIN_SIZE, SR_MAX_SIZE
-      Gibt die minimale, bzw. die maximale Groesse an, die ein Charakter
-      maximal haben darf, um eine Aktion ausfuehren zu koennen.
-    SR_FREE_HANDS
-      Gibt an, wieviele freie Haende ein Charakter fuer diese Aktion
-      besitzen muss.
-    SR_EXCLUDE_RACE
-      Mitglieder aller in dieser Liste aufgefuehrten Rassen koennen
-      diese Aktion nicht ausfuehren.
-    SR_INCLUDE_RACE
-      Mitglieder aller NICHT in dieser Liste aufgefuehrten Rassen koennen
-      diese Aktion nicht ausfuehren.
-    SM_RACE
-      Hier kann pro Rasse ein Mapping mit besonderen (nur) fuer diese Rasse
-      geltenden Einschraenkungen vorgenommen werden. Als Keys sind die
-      in dieser Manpage beschriebenen Keys erlaubt, wobei SM_RACE nicht
-      rekursiv ausgewertet wird.
-      Der Rassenname ist gross geschrieben und "*" steht fuer alle Rassen.
-    SR_EXCLUDE_GUILD
-    SR_INCLUDE_GUILD
-      Diese beiden Keys verhalten sich wie SR_*_RACE, nur dass hier Gilden
-      genannt werden.
-    SR_FUN
-      Hier kann eine Funktion in verschiedenen Formen zum Pruefen der
-      Restriktionen angegeben werden, siehe execute_anything().
-      Das kann nuetzlich sein, um andere Restriktionen zu pruefen,
-      wie das Bestehen von Miniquests oder andere Faehigkeiten/Flags.
-      Ist der Test nicht bestanden, gibt die Funktion einen String zurueck.
-    SR_PROP
-      Hier kann ein Mapping mit Properties und zugehoerigen Werten angegeben
-      werden, die jeweils auf Identitaet geprueft werden. Zusaetzlich sollte
-      eine Meldung angegeben werden, die als Fehlermeldung ausgegeben wird,
-      wenn der Spieler die Bedingung nicht erfuellt. Es sollte immer eine
-      passende Meldung fuer den Spieler eingebaut werden. Beispiel:
-      ([ SR_PROP: ([P_AUSGANG_ENTDECKT: 1; "Dein Schwert fluestert "
-          "veraergert: Ich werde Dir erst dann zu Diensten sein, wenn Du "
-          "Dich als wuerdig erwiesen hast!"]) ])
-      Aufgrund der Meldung wird empfohlen, SR_PROP nicht in Restriktionen 
-      einzusetzen, die massenweise in Savefiles landen (z.B. 
-      Spielersavefiles).
-    SR_QUEST
-      Hier kann ein String-Array mit den Namen (Keys) der Quest(s) angegeben
-      werden, die der Spieler bestanden haben muss, um die Aktion ausfuehren
-      zu koennen.
-    SR_MINIQUEST
-      Hier kann entweder ein String-Array mit den Ladenamen der vergebenden
-      Objekte oder ein Int-Array mit den Index-Nummern (IDs) der
-      Miniquest(s) (empfohlen!) angegeben werden, die der Spieler bestanden
-      haben muss, um die Aktion ausfuehren zu koennen.
+P_RESTRICTIONS
+**************
 
 
+NAME
+====
 
-BEMERKUNGEN:
-    Diese Property eignet sich hervorragend dafuer, einige Grundbedingungen
-    fuer das Nutzen der Waffe / Ruestung / Kleidung zu stellen ohne gleich
-    eine Wield- oder WearFunc setzen und auswerten zu muessen.
+   P_RESTRICTIONS                                "restrictions"
 
-    Denkbar waere der Einsatz bei hochwertigen Waffen / Ruestungen / Kleidung,
-    z.B. aus der Para-Welt oder solchen, die sich nah am Limit der geltenden
-    Grenzwerte fuer P_WC / P_AC bewegen oder sogar (nach Genehmigung durch
-    die Balance) darueber.
 
-BEISPIEL:
-    Mindeststufe 25: SetProp(P_RESTRICTIONS,([P_LEVEL:25]));
-    Keine Menschen:  SetProp(P_RESTRICTIONS,([SR_EXCLUDE_RACE:({"Mensch"})]));
-    Alignment >499:  SetProp(P_RESTRICTIONS,([SR_GOOD:500]));
+DEFINIERT IN
+============
 
-    Komplexeres Beispiel
+   /sys/combat.h
+   (Die SR_*-Parameter sind in /sys/new_skills.h definiert.)
 
-    Quest "Diamond Club" bestanden, magiereigene Property P_AUSGANG_GEFUNDEN
-    muss gesetzt sein, Stufe 10, nicht taub, max. 45 Food:
-    SetProp(P_RESTRICTIONS, ([ P_LEVEL: 10, P_DEAF: 1, P_FOOD: 45,
-      SR_PROP: ([P_AUSGANG_GEFUNDEN:1]), SR_QUEST:({"Diamond Club"}) ]));
 
-SIEHE AUCH:
-    check_restrictions(L)
-    WieldFunc(L), WearFunc(L), RemoveFunc(L), UnwieldFunc(L),
-    P_WIELD_FUNC, P_WEAR_FUNC, P_REMOVE_FUNC, P_UNWIELD_FUNC
-    /std/armour/wear.c, /std/weapon/combat.c, clothing, armours, weapon
+BESCHREIBUNG
+============
 
-LETZTE AeNDERUNG:
-03. Januar 2014, Arathorn
+   Enthaelt ein mapping mit den zu pruefenden Einschraenkungen.
+
+   In dieser Property lassen sich Restriktionen setzen, die vor dem
+   Zuecken einer Waffe / Anziehen einer Ruestung oder Kleidung geprueft
+   werden und dies gegebenfalls verhindern, ohne gleich auf eine evtl.
+   vorhandene WieldFunc / WearFunc zuzugreifen.
+
+   Die Auswertung erfolgt ueber den Aufruf von check_restrictions()
+   in /std/restriction_checker.c
+
+   Folgende Keys werden in dem Mapping ausgewertet:
+
+   P_LEVEL
+     Mindeststufe, die das Lebewesen besitzen muss, um die Aktion
+     auszufuehren.
+   P_GUILD_LEVEL
+     Gildenlevel, das das Lebewesen mindestens erreicht haben muss, um die
+     Aktion auszufuehren.
+   SR_SEER
+     Ist gesetzt, wenn das Lebewesen Seher sein muss.
+     Auswertung nur fuer Interactives, NSC ignorieren das Flag.
+   P_XP
+     Mindestmenge an Erfahrungspunkten, die ein Lebewesen besitzen muss,
+     um die Aktion auszufuehren.
+   P_QP
+     Mindestmenge an Abenteuerpunkten, die das Lebewesen haben muss.
+   P_ALCOHOL
+     Menge an Alkohol, unter der der Alkoholspiegel des Lebewesen liegen
+     muss, um die Aktion noch ausfuehren zu koennen.
+   P_DRINK
+     Menge an Fluessigkeit, unter der der Fluessigkeitsspiegel des
+     Lebewesen liegen muss, um die Aktion noch ausfuehren zu koennen.
+   P_FOOD
+     Beinhaltet die Menge an Nahrung, unter der der Nahrungsspiegel des
+     Spielers liegen muss, um die Aktion noch ausfuehren zu koennen.
+   P_DEAF
+     Ist gesetzt, falls der Spieler nicht taub sein darf.
+   P_FROG
+     Ist gesetzt, falls der Spieler kein Frosch sein darf.
+   P_BLIND
+     Ist gesetzt, falls der Spieler nicht blind sein darf.
+     Achtung: das ist nicht gleichbedeutend mit dem Umstand, dass er evtl.
+     nichts mehr sehen kann. Auch andere Gruende (zum Beispiel Dunkelheit)
+     koennen bewirken, dass ein Spieler nichts mehr sieht.
+   A_INT, A_DEX, A_CON, A_STR
+     Jeweilige Mindesthoehe eines Attribut, um eine Aktion ausfuehren zu
+     koennen.
+   SR_BAD, SR_GOOD
+     Gibt an, wie [minimal] boese bzw. wie [maximal] gut ein Charakter sein
+     darf, um eine Aktion ausfuehren zu koennen.
+   SR_MIN_SIZE, SR_MAX_SIZE
+     Gibt die minimale, bzw. die maximale Groesse an, die ein Charakter
+     maximal haben darf, um eine Aktion ausfuehren zu koennen.
+   SR_FREE_HANDS
+     Gibt an, wieviele freie Haende ein Charakter fuer diese Aktion
+     besitzen muss.
+   SR_EXCLUDE_RACE
+     Mitglieder aller in dieser Liste aufgefuehrten Rassen koennen
+     diese Aktion nicht ausfuehren.
+   SR_INCLUDE_RACE
+     Mitglieder aller NICHT in dieser Liste aufgefuehrten Rassen koennen
+     diese Aktion nicht ausfuehren.
+   SM_RACE
+     Hier kann pro Rasse ein Mapping mit besonderen (nur) fuer diese Rasse
+     geltenden Einschraenkungen vorgenommen werden. Als Keys sind die
+     in dieser Manpage beschriebenen Keys erlaubt, wobei SM_RACE nicht
+     rekursiv ausgewertet wird.
+     Der Rassenname ist gross geschrieben und "*" steht fuer alle Rassen.
+   SR_EXCLUDE_GUILD
+   SR_INCLUDE_GUILD
+     Diese beiden Keys verhalten sich wie SR_*_RACE, nur dass hier Gilden
+     genannt werden.
+   SR_FUN
+     Hier kann eine Funktion in verschiedenen Formen zum Pruefen der
+     Restriktionen angegeben werden, siehe execute_anything().
+     Das kann nuetzlich sein, um andere Restriktionen zu pruefen,
+     wie das Bestehen von Miniquests oder andere Faehigkeiten/Flags.
+     Ist der Test nicht bestanden, gibt die Funktion einen String zurueck.
+   SR_PROP
+     Hier kann ein Mapping mit Properties und zugehoerigen Werten angegeben
+     werden, die jeweils auf Identitaet geprueft werden. Zusaetzlich sollte
+     eine Meldung angegeben werden, die als Fehlermeldung ausgegeben wird,
+     wenn der Spieler die Bedingung nicht erfuellt. Es sollte immer eine
+     passende Meldung fuer den Spieler eingebaut werden. Beispiel:
+     ([ SR_PROP: ([P_AUSGANG_ENTDECKT: 1; "Dein Schwert fluestert "
+         "veraergert: Ich werde Dir erst dann zu Diensten sein, wenn Du "
+         "Dich als wuerdig erwiesen hast!"]) ])
+     Aufgrund der Meldung wird empfohlen, SR_PROP nicht in Restriktionen
+     einzusetzen, die massenweise in Savefiles landen (z.B.
+     Spielersavefiles).
+   SR_QUEST
+     Hier kann ein String-Array mit den Namen (Keys) der Quest(s) angegeben
+     werden, die der Spieler bestanden haben muss, um die Aktion ausfuehren
+     zu koennen.
+   SR_MINIQUEST
+     Hier kann entweder ein String-Array mit den Ladenamen der vergebenden
+     Objekte oder ein Int-Array mit den Index-Nummern (IDs) der
+     Miniquest(s) (empfohlen!) angegeben werden, die der Spieler bestanden
+     haben muss, um die Aktion ausfuehren zu koennen.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property eignet sich hervorragend dafuer, einige Grundbedingungen
+   fuer das Nutzen der Waffe / Ruestung / Kleidung zu stellen ohne gleich
+   eine Wield- oder WearFunc setzen und auswerten zu muessen.
+
+   Denkbar waere der Einsatz bei hochwertigen Waffen / Ruestungen / Kleidung,
+   z.B. aus der Para-Welt oder solchen, die sich nah am Limit der geltenden
+   Grenzwerte fuer P_WC / P_AC bewegen oder sogar (nach Genehmigung durch
+   die Balance) darueber.
+
+
+BEISPIEL
+========
+
+   Mindeststufe 25: SetProp(P_RESTRICTIONS,([P_LEVEL:25]));
+   Keine Menschen:  SetProp(P_RESTRICTIONS,([SR_EXCLUDE_RACE:({"Mensch"})]));
+   Alignment >499:  SetProp(P_RESTRICTIONS,([SR_GOOD:500]));
+
+   Komplexeres Beispiel
+
+   Quest "Diamond Club" bestanden, magiereigene Property P_AUSGANG_GEFUNDEN
+   muss gesetzt sein, Stufe 10, nicht taub, max. 45 Food:
+   SetProp(P_RESTRICTIONS, ([ P_LEVEL: 10, P_DEAF: 1, P_FOOD: 45,
+     SR_PROP: ([P_AUSGANG_GEFUNDEN:1]), SR_QUEST:({"Diamond Club"}) ]));
+
+
+SIEHE AUCH
+==========
+
+   check_restrictions(L)
+   WieldFunc(L), WearFunc(L), RemoveFunc(L), UnwieldFunc(L),
+   P_WIELD_FUNC, P_WEAR_FUNC, P_REMOVE_FUNC, P_UNWIELD_FUNC
+   /std/armour/wear.c, /std/weapon/combat.c, clothing, armours, weapon
+
+
+LETZTE AeNDERUNG
+================
+
+3. Januar 2014, Arathorn
diff --git a/doc/props/P_ROOM_MSG b/doc/props/P_ROOM_MSG
index c3324f2..3486458 100644
--- a/doc/props/P_ROOM_MSG
+++ b/doc/props/P_ROOM_MSG
@@ -1,20 +1,39 @@
-NAME:
-    P_ROOM_MSG                    "room_msg"                    
 
-DEFINIERT IN:
-    /sys/room/description.h
+P_ROOM_MSG
+**********
 
-BESCHREIBUNG:
-     Liste mit Meldungen, die zufaellig im Raum ausgegeben werden.
 
-     Hier sind nur die Textmeldungen als String-Array gespeichert.
+NAME
+====
 
-ANMERKUNGEN:
-     Bitte AddRoomMessage() zum Hinzufuegen/Ueberschreiben benutzen!
+   P_ROOM_MSG                    "room_msg"
 
-SIEHE AUCH:
-     LFuns:    AddRoomMessage()
-     Verwandt: tell_room(), ReceiveMsg()
-     Props:    P_FUNC_MSG, P_MSG_PROB
+
+DEFINIERT IN
+============
+
+   /sys/room/description.h
+
+
+BESCHREIBUNG
+============
+
+   Liste mit Meldungen, die zufaellig im Raum ausgegeben werden.
+
+   Hier sind nur die Textmeldungen als String-Array gespeichert.
+
+
+ANMERKUNGEN
+===========
+
+   Bitte AddRoomMessage() zum Hinzufuegen/Ueberschreiben benutzen!
+
+
+SIEHE AUCH
+==========
+
+   LFuns:    AddRoomMessage()
+   Verwandt: tell_room(), ReceiveMsg()
+   Props:    P_FUNC_MSG, P_MSG_PROB
 
 2.Feb 2016 Gloinson
diff --git a/doc/props/P_ROOM_TYPE b/doc/props/P_ROOM_TYPE
index d9dd746..22e894e 100644
--- a/doc/props/P_ROOM_TYPE
+++ b/doc/props/P_ROOM_TYPE
@@ -1,23 +1,39 @@
-NAME:
-    P_ROOM_TYPE                       "room_type"                       
 
-DEFINIERT IN:
-    /sys/rooms.h
+P_ROOM_TYPE
+***********
 
-BESCHREIBUNG:
-    In P_ROOM_TYPE wird die Art des Raumes durch entsprechende Flags
-    beschrieben.
 
-    Bisher unterstuetzt werden:
-        - RT_SHOP       fuer Raeume, die /std/room/shop inheriten
-        - RT_PUB        fuer Raeume, die /std/room/pub inheriten
+NAME
+====
 
-BEISPIEL:
-    Wenn ein NPC abfragen moechte, ob er sich in einer Kneipe aufhaelt (um
-    selbststaendig tanken zu koennen) koennte eine Abfrage z.B. so aussehen:
+   P_ROOM_TYPE                       "room_type"
 
-        if ( environment() &&
-             environment()->QueryProp(P_ROOM_TYPE) & RT_PUB ){
 
-            ... tanken ...
-        }
+DEFINIERT IN
+============
+
+   /sys/rooms.h
+
+
+BESCHREIBUNG
+============
+
+   In P_ROOM_TYPE wird die Art des Raumes durch entsprechende Flags
+   beschrieben.
+
+   Bisher unterstuetzt werden:
+       - RT_SHOP       fuer Raeume, die /std/room/shop inheriten
+       - RT_PUB        fuer Raeume, die /std/room/pub inheriten
+
+
+BEISPIEL
+========
+
+   Wenn ein NPC abfragen moechte, ob er sich in einer Kneipe aufhaelt (um
+   selbststaendig tanken zu koennen) koennte eine Abfrage z.B. so aussehen:
+
+       if ( environment() &&
+            environment()->QueryProp(P_ROOM_TYPE) & RT_PUB ){
+
+           ... tanken ...
+       }
diff --git a/doc/props/P_SB_SPELLS b/doc/props/P_SB_SPELLS
index 84aa723..1ffac9d 100644
--- a/doc/props/P_SB_SPELLS
+++ b/doc/props/P_SB_SPELLS
@@ -1,23 +1,42 @@
-NAME:
-    P_SB_SPELLS            "sb_spells"                   
 
-DEFINIERT IN:
-    /sys/new_skills.h
+P_SB_SPELLS
+***********
 
-BESCHREIBUNG:
-    In dieser Spellbookproperty sind saemtliche Sprueche des Spellbooks
-    vermerkt. Veraendert wird sie durch AddSpell().
 
-BEMERKUNGEN:
-    Man sollte diese Property nicht per Hand veraendern, sondern die
-    Funktion AddSpell() nutzen.
+NAME
+====
 
-SIEHE AUCH:
-    GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
-    * Properties:     P_GUILD_SKILLS
-    Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
-    * Verwalten:      AddSpell, QuerySpell
-    * Properties:     P_GLOBAL_SKILLPROPS
-    Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+   P_SB_SPELLS            "sb_spells"
 
-Last modified: Wed Jan 14 19:17:06 1998 by Patryn
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Spellbookproperty sind saemtliche Sprueche des Spellbooks
+   vermerkt. Veraendert wird sie durch AddSpell().
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte diese Property nicht per Hand veraendern, sondern die
+   Funktion AddSpell() nutzen.
+
+
+SIEHE AUCH
+==========
+
+   GObj Verwalten:   LearnSkill, LearnSpell, InitialSkillAbility
+   * Properties:     P_GUILD_SKILLS
+   Spellbook Lernen: Learn, SpellSuccess, Erfolg, Misserfolg
+   * Verwalten:      AddSpell, QuerySpell
+   * Properties:     P_GLOBAL_SKILLPROPS
+   Skills:           P_NEWSKILLS, spruchermuedung, skill_info_liste
+
+Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_SCREENSIZE b/doc/props/P_SCREENSIZE
index fc9dd15..e54ee8b 100644
--- a/doc/props/P_SCREENSIZE
+++ b/doc/props/P_SCREENSIZE
@@ -1,8 +1,21 @@
-NAME:
-    P_SCREENSIZE                  "screensize"                  
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_SCREENSIZE
+************
 
-BESCHREIBUNG:
-     Bildschirmgroesse in Zeilen (fuer More)
+
+NAME
+====
+
+   P_SCREENSIZE                  "screensize"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Bildschirmgroesse in Zeilen (fuer More)
diff --git a/doc/props/P_SECOND b/doc/props/P_SECOND
index 4aa835a..69c97d6 100644
--- a/doc/props/P_SECOND
+++ b/doc/props/P_SECOND
@@ -1,21 +1,39 @@
-NAME:
-    P_SECOND                      "second"                      
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_SECOND
+********
 
-BESCHREIBUNG:
-     Wenn diese Prop gesetzt ist, ist der Spieler ein Zweitie. Inhalt der
-     Prop ist ein String mit dem (lowercase) Namen des Ersties.
 
-BEISPIEL:
-     if (this_player()->QueryProp(P_SECOND)=="notstrom") {
-       tell_object(this_player(), "Nicht alles aufessen!\n");
-     }
+NAME
+====
 
-SIEHE AUCH:
-     Properties: P_SECOND_MARK
-     Sonstiges:  /secure/zweities.c
+   P_SECOND                      "second"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn diese Prop gesetzt ist, ist der Spieler ein Zweitie. Inhalt der
+   Prop ist ein String mit dem (lowercase) Namen des Ersties.
+
+
+BEISPIEL
+========
+
+   if (this_player()->QueryProp(P_SECOND)=="notstrom") {
+     tell_object(this_player(), "Nicht alles aufessen!\n");
+   }
+
+
+SIEHE AUCH
+==========
+
+   Properties: P_SECOND_MARK
+   Sonstiges:  /secure/zweities.c
+
 Last modified: 18-Jun-2015, Arathorn.
diff --git a/doc/props/P_SECOND_MARK b/doc/props/P_SECOND_MARK
index c1c0c42..dd2c68a 100644
--- a/doc/props/P_SECOND_MARK
+++ b/doc/props/P_SECOND_MARK
@@ -1,18 +1,31 @@
-NAME:
-    P_SECOND_MARK                 "second_mark"
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_SECOND_MARK
+*************
 
-BESCHREIBUNG:
-     Gibt an, wie mit der Zweitie-Markierung eines Spielers umgegangen wird.
 
-     -1  'unsichtbare' Markierung; im wer/kwer wird bei diesem Zweitie s
-         oder S angezeigt.
+NAME
+====
 
-      0  'sichtbare' Markierung; im wer/kwer wird bei diesem Zweitie z oder
-         Z angezeigt. Der Name des Ersties ist beim Fingern jedoch nur
-         fuer Magier sichtbar.
+   P_SECOND_MARK                 "second_mark"
 
-      1  Markierung 'sichtbar + Name'; wie 0, nur dass beim Fingern alle
-         Spieler den Namen des Ersties sehen koennen.
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt an, wie mit der Zweitie-Markierung eines Spielers umgegangen wird.
+
+   -1  'unsichtbare' Markierung; im wer/kwer wird bei diesem Zweitie s
+       oder S angezeigt.
+
+    0  'sichtbare' Markierung; im wer/kwer wird bei diesem Zweitie z oder
+       Z angezeigt. Der Name des Ersties ist beim Fingern jedoch nur
+       fuer Magier sichtbar.
+
+    1  Markierung 'sichtbar + Name'; wie 0, nur dass beim Fingern alle
+       Spieler den Namen des Ersties sehen koennen.
diff --git a/doc/props/P_SEERDOORS b/doc/props/P_SEERDOORS
index 8ffb852..8ec02e7 100644
--- a/doc/props/P_SEERDOORS
+++ b/doc/props/P_SEERDOORS
@@ -1,26 +1,45 @@
+
 P_SEERDOORS
+***********
 
-NAME:
-     P_SEERDOORS      "rw_sehertore"
 
-DEFINIERT IN:
-     /d/seher/portale/sehertor.h
+NAME
+====
 
-BESCHREIBUNG:
-     Sehertor-relevante Property.
+   P_SEERDOORS      "rw_sehertore"
 
-     Enthaelt ein Mapping mit den Wertepaaren
-     ([ Seher-Portal-Nummer: x ])
-     mit x != 0 fuer entdeckte Tore.
-     
-     0 hat ein Sonderverhalten fuer mobile Tore.
 
-BEMERKUNG:
-     Auf gar keinen Fall in Spielern manipulieren! Und bitte das enthaltene
-     Mapping nicht von einem Spieler abfragen und P_SEERDOORS in einem
-     Testspieler zuweisen!
-     
-SIEHE AUCH:
-     P_FAO_PORTALS
-     
+DEFINIERT IN
+============
+
+   /d/seher/portale/sehertor.h
+
+
+BESCHREIBUNG
+============
+
+   Sehertor-relevante Property.
+
+   Enthaelt ein Mapping mit den Wertepaaren
+   ([ Seher-Portal-Nummer: x ])
+   mit x != 0 fuer entdeckte Tore.
+
+
+
+   0 hat ein Sonderverhalten fuer mobile Tore.
+
+
+BEMERKUNG
+=========
+
+   Auf gar keinen Fall in Spielern manipulieren! Und bitte das enthaltene
+   Mapping nicht von einem Spieler abfragen und P_SEERDOORS in einem
+   Testspieler zuweisen!
+
+
+SIEHE AUCH
+==========
+
+   P_FAO_PORTALS
+
 1.September 2008 Gloinson
diff --git a/doc/props/P_SEERDOOR_ALLOWED b/doc/props/P_SEERDOOR_ALLOWED
index b8225e3..12f062b 100644
--- a/doc/props/P_SEERDOOR_ALLOWED
+++ b/doc/props/P_SEERDOOR_ALLOWED
@@ -1,15 +1,27 @@
-NAME:
-    P_SEERDOOR_ALLOWED		"rw_sehertor_erlaubt"                          
 
-DEFINIERT IN:
-    /d/seher/portale/sehertor.h
+P_SEERDOOR_ALLOWED
+******************
 
-BESCHREIBUNG:
-     Diese Property muss in einem Raum gesetzt sein, soll
-     ein Seher dort ein mobiles Sehertor abstellen duerfen.
-     Zusaetzlich darf der Raum nicht in PARA liegen und muss
-     als eigenes File existieren.
-     Es ist darauf zu achten, Sehertore nicht in Questgebieten,
-     direkt an Tanken oder aehnlichen Plaetzen zu erlauben.
-     Es gilt die Einschaetzung des fuer den Raum Verantwortlichen.
 
+NAME
+====
+
+   P_SEERDOOR_ALLOWED          "rw_sehertor_erlaubt"
+
+
+DEFINIERT IN
+============
+
+   /d/seher/portale/sehertor.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property muss in einem Raum gesetzt sein, soll
+   ein Seher dort ein mobiles Sehertor abstellen duerfen.
+   Zusaetzlich darf der Raum nicht in PARA liegen und muss
+   als eigenes File existieren.
+   Es ist darauf zu achten, Sehertore nicht in Questgebieten,
+   direkt an Tanken oder aehnlichen Plaetzen zu erlauben.
+   Es gilt die Einschaetzung des fuer den Raum Verantwortlichen.
diff --git a/doc/props/P_SENSITIVE b/doc/props/P_SENSITIVE
index 23d1fee..c1e8051 100644
--- a/doc/props/P_SENSITIVE
+++ b/doc/props/P_SENSITIVE
@@ -1,125 +1,154 @@
+
 P_SENSITIVE
-NAME:
-     P_SENSITIVE                   "sensitive"
+***********
 
-DEFINIERT IN:
-     /sys/thing/moving.h
 
-BESCHREIBUNG:
-     Diese Property kann in Objekten gesetzt werden, die auf bestimmte
-     Schadensarten empfindlich reagieren sollen. Moegliche Anwendungsfaelle:
-     - Das Lebewesen, in dessen Inventar sich ein Objekt befindet, erleidet
-       einen Angriff mit der fraglichen Schadensart (Beispiel: eine 
-       Pusteblume, die bei Angriff mit Luftschaden auseinanderfaellt).
-     - Zwei Objekte treffen im gleichen Environment aufeinander, wobei
-       eines empfindlich auf eine Schadensart reagiert, und das zweite diese
-       Schadensart mitbringt, d.h. die Empfindlichkeit ausloesen kann.
-       (Beispiel: ein feuerempfindlicher Postsack wird angesengt, wenn eine
-        brennende Fackel ins gleiche Inventar kommt.)
-       Das Ausloesen dieser Empfindlichkeit ist unabhaengig davon, welches 
-       Objekt zuerst da war.
+NAME
+====
 
-     Die Property enthaelt ein Array aus Arrays:
-       ({<sensprops_1>, <sensprops_2>, ..., <sensprops_n>})
-     
-     wobei jeder Eintrag <sensprops> jeweils folgende Struktur hat:
-       ({string list_key, string damtype, int treshold, mixed options })
-     
-     Die Eintraege haben dabei folgende Bedeutung:
-     
-     list_key: Kann einen von folgenden drei Werten annehmen 
-          1) SENSITIVE_INVENTORY, passive Eigenschaft; zeigt an, dass das
-             Objekt empfindlich auf aktive Objekte reagiert, die in das
-             Inventory des Containers hineinbewegt werden
-          2) SENSITIVE_ATTACK, passive Eigenschaft; zeigt an, dass das 
-             Objekt empfindlich auf aeussere Einfluesse bzw. Angriffe 
-             auf ein Lebewesen reagiert, in dessen Inventar es sich befindet
-          3) SENSITIVE_INVENTORY_TRIGGER, aktive Eigenschaft; zeigt an, dass
-             das Objekt eine Ausstrahlung auf andere Objekte im Inventar
-             hat. Wird ausgeloest, wenn das Objekt ins Inventar hineinbewegt
-             wird.
-     damtype: eine Schadensart (DT_FIRE, DT_WATER, ...)
-     treshold: hat zwei Bedeutungen abhaengig von dem Wert in list_key:
-          1) Fuer Objekte mit SENSITIVE_INVENTORY oder SENSITIVE_ATTCK ist
-             dies der Schadenswert, ab dem das Objekt benachrichtigt werden 
-             soll.
-             Hier wird ein Wert in "Defend-Einheiten" erwartet, d.h. das
-             Zehnfache dessen, was am Ende in LP abgezogen wuerde.
-          2) Fuer Objekte mit SENSITIVE_INVENTORY_TRIGGER ist dies der 
-             Schadenswert, mit dem das Objekt andere bereits im Inventar
-             des Containers befindliche Objekte beeinflusst, die eine 
-             entsprechende Empfindlichkeit gesetzt haben
-     options: Optionale Daten, die der programmierende Magier selbst
-            definieren kann. Werden an die in den betroffenen Objekten
-            aufgerufenen Funktionen durchgereicht.
+   P_SENSITIVE                   "sensitive"
 
-     Ein SENSITIVE_ATTACK-Objekt, dessen Trigger-Bedingungen erfuellt sind,
-     wird durch folgenden Funktionsaufruf darueber informiert:
-       trigger_sensitive_attack(object enemy, string damtype, int damage,
-                 mixed spell, mixed options)
-     
-     Ein SENSITIVE_INVENTORY-Objekt, dessen Trigger-Bedingungen erfuellt sind,
-     wird durch folgenden Funktionsaufruf darueber informiert:
-       trigger_sensitive_inv(object whodid, string damtype, int threshold,
-                 mixed options, mixed options)
 
-     Die beiden Funktionen muessen selbst ge-/ueberschrieben werden.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     1. P_SENSITIVE-Objekte kosten Rechenzeit bei jedem Angriff oder jedem
-        move() - daher bitte sparsam verwenden
-     2. Ist P_SENSITIVE nicht statisch, sondern wird es situationsabhaengig 
-        geaendert, muss man das environment() jeweils selbst ueber seine 
-        neue Empfindlichkeit benachrichtigen. Dies geschieht mit den 
-        Funktionen RemoveSensitiveObject() bzw.InsertSensitiveObject(), 
-        siehe deren Manpages.
+   /sys/thing/moving.h
 
-BEISPIEL:
-     Beispiel 1:
-     Beispielcode eines Objektes mit SENSITIVE_ATTACK und SENSITIVE_INVENTORY
-     siehe hier: /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c
 
-     Beispiel 2:
-     Ein Eiszapfen, der bei Feuerangriffen oder bei heissen Gegenstaenden im
-     gemeinsamen Environment zerschmelzen soll:
+BESCHREIBUNG
+============
 
-     void create() {
-       SetProp( P_SENSITIVE, ({ ({SENSITIVE_ATTACK,     DT_FIRE, 100}),
-                                 ({SENSITIVE_INVENTORY, DT_FIRE, 100}) }) );
-       [...]
+   Diese Property kann in Objekten gesetzt werden, die auf bestimmte
+   Schadensarten empfindlich reagieren sollen. Moegliche Anwendungsfaelle:
+   - Das Lebewesen, in dessen Inventar sich ein Objekt befindet, erleidet
+     einen Angriff mit der fraglichen Schadensart (Beispiel: eine
+     Pusteblume, die bei Angriff mit Luftschaden auseinanderfaellt).
+   - Zwei Objekte treffen im gleichen Environment aufeinander, wobei
+     eines empfindlich auf eine Schadensart reagiert, und das zweite diese
+     Schadensart mitbringt, d.h. die Empfindlichkeit ausloesen kann.
+     (Beispiel: ein feuerempfindlicher Postsack wird angesengt, wenn eine
+      brennende Fackel ins gleiche Inventar kommt.)
+     Das Ausloesen dieser Empfindlichkeit ist unabhaengig davon, welches
+     Objekt zuerst da war.
+
+   Die Property enthaelt ein Array aus Arrays:
+     ({<sensprops_1>, <sensprops_2>, ..., <sensprops_n>})
+
+
+
+   wobei jeder Eintrag <sensprops> jeweils folgende Struktur hat:
+     ({string list_key, string damtype, int treshold, mixed options })
+
+
+
+   Die Eintraege haben dabei folgende Bedeutung:
+
+
+
+   list_key: Kann einen von folgenden drei Werten annehmen
+        1) SENSITIVE_INVENTORY, passive Eigenschaft; zeigt an, dass das
+           Objekt empfindlich auf aktive Objekte reagiert, die in das
+           Inventory des Containers hineinbewegt werden
+        2) SENSITIVE_ATTACK, passive Eigenschaft; zeigt an, dass das
+           Objekt empfindlich auf aeussere Einfluesse bzw. Angriffe
+           auf ein Lebewesen reagiert, in dessen Inventar es sich befindet
+        3) SENSITIVE_INVENTORY_TRIGGER, aktive Eigenschaft; zeigt an, dass
+           das Objekt eine Ausstrahlung auf andere Objekte im Inventar
+           hat. Wird ausgeloest, wenn das Objekt ins Inventar hineinbewegt
+           wird.
+   damtype: eine Schadensart (DT_FIRE, DT_WATER, ...)
+   treshold: hat zwei Bedeutungen abhaengig von dem Wert in list_key:
+        1) Fuer Objekte mit SENSITIVE_INVENTORY oder SENSITIVE_ATTCK ist
+           dies der Schadenswert, ab dem das Objekt benachrichtigt werden
+           soll.
+           Hier wird ein Wert in "Defend-Einheiten" erwartet, d.h. das
+           Zehnfache dessen, was am Ende in LP abgezogen wuerde.
+        2) Fuer Objekte mit SENSITIVE_INVENTORY_TRIGGER ist dies der
+           Schadenswert, mit dem das Objekt andere bereits im Inventar
+           des Containers befindliche Objekte beeinflusst, die eine
+           entsprechende Empfindlichkeit gesetzt haben
+   options: Optionale Daten, die der programmierende Magier selbst
+          definieren kann. Werden an die in den betroffenen Objekten
+          aufgerufenen Funktionen durchgereicht.
+
+   Ein SENSITIVE_ATTACK-Objekt, dessen Trigger-Bedingungen erfuellt sind,
+   wird durch folgenden Funktionsaufruf darueber informiert:
+     trigger_sensitive_attack(object enemy, string damtype, int damage,
+               mixed spell, mixed options)
+
+
+
+   Ein SENSITIVE_INVENTORY-Objekt, dessen Trigger-Bedingungen erfuellt sind,
+   wird durch folgenden Funktionsaufruf darueber informiert:
+     trigger_sensitive_inv(object whodid, string damtype, int threshold,
+               mixed options, mixed options)
+
+   Die beiden Funktionen muessen selbst ge-/ueberschrieben werden.
+
+
+BEMERKUNGEN
+===========
+
+   1. P_SENSITIVE-Objekte kosten Rechenzeit bei jedem Angriff oder jedem
+      move() - daher bitte sparsam verwenden
+   2. Ist P_SENSITIVE nicht statisch, sondern wird es situationsabhaengig
+      geaendert, muss man das environment() jeweils selbst ueber seine
+      neue Empfindlichkeit benachrichtigen. Dies geschieht mit den
+      Funktionen RemoveSensitiveObject() bzw.InsertSensitiveObject(),
+      siehe deren Manpages.
+
+
+BEISPIEL
+========
+
+   Beispiel 1:
+   Beispielcode eines Objektes mit SENSITIVE_ATTACK und SENSITIVE_INVENTORY
+   siehe hier: /doc/beispiele/testobjekte/attack_busy_sensitive_testobj.c
+
+   Beispiel 2:
+   Ein Eiszapfen, der bei Feuerangriffen oder bei heissen Gegenstaenden im
+   gemeinsamen Environment zerschmelzen soll:
+
+   void create() {
+     SetProp( P_SENSITIVE, ({ ({SENSITIVE_ATTACK,     DT_FIRE, 100}),
+                               ({SENSITIVE_INVENTORY, DT_FIRE, 100}) }) );
+     [...]
+   }
+
+   varargs void trigger_sensitive_attack() {
+     remove();
+   }
+
+   varargs void trigger_sensitive_inv() {
+     call_out("remove",0);  // verzoegert, wegen move()
+   }
+
+   varargs int remove(int silent) {
+     if(!silent) {
+       object room = all_environment(this_object())[<1];
+       tell_room(room, Name()+" zerschmilzt.\n");
      }
+     return ::remove();
+   }
 
-     varargs void trigger_sensitive_attack() {
-       remove();
-     }
+   - wird eine Fackel mit
+     SetProp(P_SENSITIVE,({({SENSITIVE_INVENTORY_TRIGGER,DT_FIRE,250})}))
+     in das gleiche environment() wie dieser Zapfen bewegt wird, loest
+     diese im Zapfen trigger_sensitive_inv() aus
+   - wird ein Angriff mit DT_FIRE und initialem Schaden > 100 auf das
+     environment() veruebt, loest dies im Zapfen trigger_sensitive_attack()
+     aus
 
-     varargs void trigger_sensitive_inv() {
-       call_out("remove",0);  // verzoegert, wegen move()
-     }
 
-     varargs int remove(int silent) {
-       if(!silent) {
-         object room = all_environment(this_object())[<1];
-         tell_room(room, Name()+" zerschmilzt.\n");
-       }
-       return ::remove();
-     }
+SIEHE AUCH
+==========
 
-     - wird eine Fackel mit
-       SetProp(P_SENSITIVE,({({SENSITIVE_INVENTORY_TRIGGER,DT_FIRE,250})}))
-       in das gleiche environment() wie dieser Zapfen bewegt wird, loest
-       diese im Zapfen trigger_sensitive_inv() aus
-     - wird ein Angriff mit DT_FIRE und initialem Schaden > 100 auf das
-       environment() veruebt, loest dies im Zapfen trigger_sensitive_attack()
-       aus
-
-SIEHE AUCH:
-     Properties: P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY,
-                 P_SENSITIVE_INVENTORY_TRIGGER
-     Funktionen: InsertSensitiveObject(L), RemoveSensitiveObject(L),
-                 CheckSensitiveAttack(L), Defend(), 
-                 insert_sensitive_inv(L), insert_sensitive_inv_trigger(L),
-                 trigger_sensitive_inv(L), trigger_sensitive_attack(L)
-     Defines:    /sys/sensitive.h
+   Properties: P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY,
+               P_SENSITIVE_INVENTORY_TRIGGER
+   Funktionen: InsertSensitiveObject(L), RemoveSensitiveObject(L),
+               CheckSensitiveAttack(L), Defend(),
+               insert_sensitive_inv(L), insert_sensitive_inv_trigger(L),
+               trigger_sensitive_inv(L), trigger_sensitive_attack(L)
+   Defines:    /sys/sensitive.h
 
 Letzte Aenderung: 10. Januar 2015, Arathorn
diff --git a/doc/props/P_SENSITIVE_ATTACK b/doc/props/P_SENSITIVE_ATTACK
index b1586eb..168c15b 100644
--- a/doc/props/P_SENSITIVE_ATTACK
+++ b/doc/props/P_SENSITIVE_ATTACK
@@ -1,24 +1,42 @@
+
 P_SENSITIVE_ATTACK
-NAME:
-    P_SENSITIVE_ATTACK            "sensitive_attack"
+******************
 
-DEFINIERT IN:
-    /sys/sensitive.h
 
-BESCHREIBUNG:
-    Hier steht die Liste der zu informierenden Objekte, die potentiell
-    auf einen Angriff reagieren koennten.
-    Wird von InsertSensitiveObject() und RemoveSensitiveObject()
-    geschrieben und in CheckSensitiveAttack() ausgewertet.
+NAME
+====
 
-BEMERKUNGEN:
-    Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+   P_SENSITIVE_ATTACK            "sensitive_attack"
 
-SIEHE AUCH:
-     P_SENSITIVE
-     InsertSensitiveObject, RemoveSensitiveObject
-     insert_sensitive_inv_trigger, insert_sensitive_inv
-     P_SENSITIVE_INVENTORY_TRIGGER, P_SENSITIVE_INVENTORY
-     CheckSensitiveAttack
+
+DEFINIERT IN
+============
+
+   /sys/sensitive.h
+
+
+BESCHREIBUNG
+============
+
+   Hier steht die Liste der zu informierenden Objekte, die potentiell
+   auf einen Angriff reagieren koennten.
+   Wird von InsertSensitiveObject() und RemoveSensitiveObject()
+   geschrieben und in CheckSensitiveAttack() ausgewertet.
+
+
+BEMERKUNGEN
+===========
+
+   Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+
+
+SIEHE AUCH
+==========
+
+   P_SENSITIVE
+   InsertSensitiveObject, RemoveSensitiveObject
+   insert_sensitive_inv_trigger, insert_sensitive_inv
+   P_SENSITIVE_INVENTORY_TRIGGER, P_SENSITIVE_INVENTORY
+   CheckSensitiveAttack
 
 25.Apr.2001, Gloinson@MG
diff --git a/doc/props/P_SENSITIVE_INVENTORY b/doc/props/P_SENSITIVE_INVENTORY
index 1e75423..418f9a1 100644
--- a/doc/props/P_SENSITIVE_INVENTORY
+++ b/doc/props/P_SENSITIVE_INVENTORY
@@ -1,24 +1,43 @@
-NAME:
-    P_SENSITIVE_INVENTORY         "sensitive_inv"
 
-DEFINIERT IN:
-    /sys/sensitive.h
+P_SENSITIVE_INVENTORY
+*********************
 
-BESCHREIBUNG:
-    Hier steht die Liste der zu informierenden Objekte, die potentiell
-    auf ein anderes Objekt mit gesetztem P_SENSITIVE_INVENTORY_TRIGGER
-    reagieren koennten.
-    Wird von InsertSensitiveObject() und RemoveSensitiveObject()
-    geschrieben.
 
-BEMERKUNGEN:
-    Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+NAME
+====
 
-SIEHE AUCH:
-     P_SENSITIVE
-     InsertSensitiveObject, RemoveSensitiveObject
-     insert_sensitive_inv_trigger, insert_sensitive_inv
-     P_SENSITIVE_INVENTORY_TRIGGER, P_SENSITIVE_ATTACK
-     CheckSensitiveAttack
+   P_SENSITIVE_INVENTORY         "sensitive_inv"
+
+
+DEFINIERT IN
+============
+
+   /sys/sensitive.h
+
+
+BESCHREIBUNG
+============
+
+   Hier steht die Liste der zu informierenden Objekte, die potentiell
+   auf ein anderes Objekt mit gesetztem P_SENSITIVE_INVENTORY_TRIGGER
+   reagieren koennten.
+   Wird von InsertSensitiveObject() und RemoveSensitiveObject()
+   geschrieben.
+
+
+BEMERKUNGEN
+===========
+
+   Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+
+
+SIEHE AUCH
+==========
+
+   P_SENSITIVE
+   InsertSensitiveObject, RemoveSensitiveObject
+   insert_sensitive_inv_trigger, insert_sensitive_inv
+   P_SENSITIVE_INVENTORY_TRIGGER, P_SENSITIVE_ATTACK
+   CheckSensitiveAttack
 
 25.Apr.2001, Gloinson@MG
diff --git a/doc/props/P_SENSITIVE_INVENTORY_TRIGGER b/doc/props/P_SENSITIVE_INVENTORY_TRIGGER
index df6feae..627a582 100644
--- a/doc/props/P_SENSITIVE_INVENTORY_TRIGGER
+++ b/doc/props/P_SENSITIVE_INVENTORY_TRIGGER
@@ -1,24 +1,42 @@
+
 P_SENSITIVE_INVENTORY_TRIGGER
-NAME:
-    P_SENSITIVE_INVENTORY_TRIGGER "sensitive_inv_trigger"
+*****************************
 
-DEFINIERT IN:
-    /sys/sensitive.h
 
-BESCHREIBUNG:
-    Hier steht die Liste der aktiven Objekte, die eine potentielle
-    "Ausstrahlung" auf andere Objekte haben.
-    Wird von InsertSensitiveObject() und RemoveSensitiveObject()
-    geschrieben.
+NAME
+====
 
-BEMERKUNGEN:
-    Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+   P_SENSITIVE_INVENTORY_TRIGGER "sensitive_inv_trigger"
 
-SIEHE AUCH:
-     P_SENSITIVE
-     InsertSensitiveObject, RemoveSensitiveObject
-     insert_sensitive_inv_trigger, insert_sensitive_inv
-     P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY
-     CheckSensitiveAttack
+
+DEFINIERT IN
+============
+
+   /sys/sensitive.h
+
+
+BESCHREIBUNG
+============
+
+   Hier steht die Liste der aktiven Objekte, die eine potentielle
+   "Ausstrahlung" auf andere Objekte haben.
+   Wird von InsertSensitiveObject() und RemoveSensitiveObject()
+   geschrieben.
+
+
+BEMERKUNGEN
+===========
+
+   Nicht selbst veraendern - bitte P_SENSITIVE fuer Eintraege benutzen.
+
+
+SIEHE AUCH
+==========
+
+   P_SENSITIVE
+   InsertSensitiveObject, RemoveSensitiveObject
+   insert_sensitive_inv_trigger, insert_sensitive_inv
+   P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY
+   CheckSensitiveAttack
 
 25.Apr.2001, Gloinson@MG
diff --git a/doc/props/P_SHOOTING_AREA b/doc/props/P_SHOOTING_AREA
index 770564f..9339847 100644
--- a/doc/props/P_SHOOTING_AREA
+++ b/doc/props/P_SHOOTING_AREA
@@ -1,24 +1,38 @@
+
 P_SHOOTING_AREA
+***************
 
-NAME:
-    P_SHOOTING_AREA     "shooting_area"
 
-DEFINIERT IN:
-    <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-    Legt die 'Groesse' eines Raumes fest. Ein Schuetze kann mit seiner
-    Fernkampfwaffe nur dann aus diesem Raum in einen anderen Raum schiessen,
-    wenn die P_RANGE seiner Waffe mindestens gleich ist.
+   P_SHOOTING_AREA     "shooting_area"
 
-    Erreichbare Raeume sind entweder das environment() oder der in
-    P_SHOOTING_AREA festgelegte Raum.
 
-SIEHE AUCH:
-    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
-    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
-    Gebiet:    P_RANGE, P_TARGET_AREA
-    Raeume:    P_NEVER_CLEAN
-    Sonstiges: fernwaffen
+DEFINIERT IN
+============
 
-29.Jul 2014 Gloinson
\ No newline at end of file
+   <combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Legt die 'Groesse' eines Raumes fest. Ein Schuetze kann mit seiner
+   Fernkampfwaffe nur dann aus diesem Raum in einen anderen Raum schiessen,
+   wenn die P_RANGE seiner Waffe mindestens gleich ist.
+
+   Erreichbare Raeume sind entweder das environment() oder der in
+   P_SHOOTING_AREA festgelegte Raum.
+
+
+SIEHE AUCH
+==========
+
+   Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
+   Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+   Gebiet:    P_RANGE, P_TARGET_AREA
+   Raeume:    P_NEVER_CLEAN
+   Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
diff --git a/doc/props/P_SHOOTING_WC b/doc/props/P_SHOOTING_WC
index 35ca215..6345d76 100644
--- a/doc/props/P_SHOOTING_WC
+++ b/doc/props/P_SHOOTING_WC
@@ -1,31 +1,48 @@
+
 P_SHOOTING_WC
+*************
 
-NAME:
-    P_SHOOTING_WC     "shooting_wc"
 
-DEFINIERT IN:
-    <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-    Legt in einer Fernkampfwaffe UND ihrer Munition die Waffenstaerke fest.
-    Bei einem Schuss wird die Summe kombiniert mit der Geschicklichkeit
-    zur Berechnung der Angriffstaerke benutzt.
+   P_SHOOTING_WC     "shooting_wc"
 
-BEISPIELE:
-    SetProp(P_SHOOTING_WC, 70);     // Langbogen
-    SetProp(P_SHOOTING_WC, 50);     // Kurzbogen
 
-    SetProp(P_SHOOTING_WC, 40);     // Bambuspfeil
-    SetProp(P_SHOOTING_WC, 60);     // Aluminiumpfeil
+DEFINIERT IN
+============
 
-    // So haetten Langbogen mit Aluminiumpfeil eine P_SHOOTING_WC von 70+60.
+   <combat.h>
 
-SIEHE AUCH:
-    Generell:  P_AMMUNITION, P_STRETCH_TIME
-    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
-    Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
-    Waffen:    P_WEAPON_TYPE, P_WC, P_EQUIP_TIME, P_NR_HANDS
-    Kampf:     Attack(L), Defend(L), P_DISABLE_ATTACK, P_ATTACK_BUSY
-    Sonstiges: fernwaffen
 
-29.Jul 2014 Gloinson
\ No newline at end of file
+BESCHREIBUNG
+============
+
+   Legt in einer Fernkampfwaffe UND ihrer Munition die Waffenstaerke fest.
+   Bei einem Schuss wird die Summe kombiniert mit der Geschicklichkeit
+   zur Berechnung der Angriffstaerke benutzt.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_SHOOTING_WC, 70);     // Langbogen
+   SetProp(P_SHOOTING_WC, 50);     // Kurzbogen
+
+   SetProp(P_SHOOTING_WC, 40);     // Bambuspfeil
+   SetProp(P_SHOOTING_WC, 60);     // Aluminiumpfeil
+
+   // So haetten Langbogen mit Aluminiumpfeil eine P_SHOOTING_WC von 70+60.
+
+
+SIEHE AUCH
+==========
+
+   Generell:  P_AMMUNITION, P_STRETCH_TIME
+   Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+   Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
+   Waffen:    P_WEAPON_TYPE, P_WC, P_EQUIP_TIME, P_NR_HANDS
+   Kampf:     Attack(L), Defend(L), P_DISABLE_ATTACK, P_ATTACK_BUSY
+   Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
diff --git a/doc/props/P_SHORT b/doc/props/P_SHORT
index b6502d4..49b2603 100644
--- a/doc/props/P_SHORT
+++ b/doc/props/P_SHORT
@@ -1,41 +1,60 @@
+
 P_SHORT
-NAME:
-     P_SHORT				"short"
+*******
 
-DEFINIERT IN:
-     /sys/thing/description.h
 
-BESCHREIBUNG:
-     Diese Property enthaelt die Kurzbeschreibung des Objektes als String 
-     oder Closure (diese muss einen String zurueckgeben).
+NAME
+====
 
-     ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
-	      Satzzeichen noch mit einem "\n" abgeschlossen sein
-	      (dies wird von den zustaendigen Funktionen erledigt).
+   P_SHORT                            "short"
 
-     Setzt man diese Property auf 0, so ist das Objekt unsichtbar, allerdings
-     ansprechbar, wenn der Spieler eine ID des Objektes kennt. D.h. Objekte
-     koennen mitgenommen, weggeworfen oder ggf. auch angegriffen werden. Will
-     man dies nicht, sollte man das Objekt mit P_INVIS unsichtbar machen.
 
-     Diese Property bestimmt die Ansicht des Objektes von aussen. Fuer die
-     Innen(kurz)ansicht von Raeumen muss man P_INT_LONG benutzen.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     Die Funktion, die die Kurzbeschreibung ausgibt (short()), filtert P_SHORT
-     durch process_string(). Von der Nutzung dieses Features wird in neuem
-     Code abgeraten.
-     Soll eine dyn. Kurzbeschreibung geschaffen werden, bitte eine
-     F_QUERY_METHOD einsetzen oder short() passend ueberschreiben.
+   /sys/thing/description.h
 
-BEISPIELE:
-     // eine Axt sieht natuerlich so aus:
-     SetProp(P_SHORT, "Eine Axt");
 
-SIEHE AUCH:
-     Aehnliches:	P_LONG, short()
-     Sonstiges:		P_INT_SHORT, process_string()
+BESCHREIBUNG
+============
 
-----------------------------------------------------------------------------
+   Diese Property enthaelt die Kurzbeschreibung des Objektes als String
+   oder Closure (diese muss einen String zurueckgeben).
+
+   ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
+            Satzzeichen noch mit einem "\n" abgeschlossen sein
+            (dies wird von den zustaendigen Funktionen erledigt).
+
+   Setzt man diese Property auf 0, so ist das Objekt unsichtbar, allerdings
+   ansprechbar, wenn der Spieler eine ID des Objektes kennt. D.h. Objekte
+   koennen mitgenommen, weggeworfen oder ggf. auch angegriffen werden. Will
+   man dies nicht, sollte man das Objekt mit P_INVIS unsichtbar machen.
+
+   Diese Property bestimmt die Ansicht des Objektes von aussen. Fuer die
+   Innen(kurz)ansicht von Raeumen muss man P_INT_LONG benutzen.
+
+
+BEMERKUNGEN
+===========
+
+   Die Funktion, die die Kurzbeschreibung ausgibt (short()), filtert P_SHORT
+   durch process_string(). Von der Nutzung dieses Features wird in neuem
+   Code abgeraten.
+   Soll eine dyn. Kurzbeschreibung geschaffen werden, bitte eine
+   F_QUERY_METHOD einsetzen oder short() passend ueberschreiben.
+
+
+BEISPIELE
+=========
+
+   // eine Axt sieht natuerlich so aus:
+   SetProp(P_SHORT, "Eine Axt");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches:        P_LONG, short()
+   Sonstiges:         P_INT_SHORT, process_string()
+
 27.05.2015, Zesstra
-
diff --git a/doc/props/P_SHORT_CWD b/doc/props/P_SHORT_CWD
index a6343ae..46f0236 100644
--- a/doc/props/P_SHORT_CWD
+++ b/doc/props/P_SHORT_CWD
@@ -1,8 +1,21 @@
-NAME:
-    P_SHORT_CWD                   "short_cwd"                   
 
-DEFINIERT IN:
-    /sys/shells.h
+P_SHORT_CWD
+***********
 
-BESCHREIBUNG:
-     .readme bei cd ausgeben oder nicht
+
+NAME
+====
+
+   P_SHORT_CWD                   "short_cwd"
+
+
+DEFINIERT IN
+============
+
+   /sys/shells.h
+
+
+BESCHREIBUNG
+============
+
+   .readme bei cd ausgeben oder nicht
diff --git a/doc/props/P_SHOWEMAIL b/doc/props/P_SHOWEMAIL
index 82d1348..b6cf580 100644
--- a/doc/props/P_SHOWEMAIL
+++ b/doc/props/P_SHOWEMAIL
@@ -1,10 +1,23 @@
-NAME:
-     P_SHOWEMAIL                        "showemail"
 
-DEFINIERT IN:
-     /sys/player/base.h
+P_SHOWEMAIL
+***********
 
-BESCHREIBUNG:
-     Eintrag, wer die E-Mail im "finger" zu sehen bekommen soll:
-     0, "alle", "freunde"
-     Kann durch "emailanzeige" (/std/player/base.c) geaendert werden.
+
+NAME
+====
+
+   P_SHOWEMAIL                        "showemail"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Eintrag, wer die E-Mail im "finger" zu sehen bekommen soll:
+   0, "alle", "freunde"
+   Kann durch "emailanzeige" (/std/player/base.c) geaendert werden.
diff --git a/doc/props/P_SHOW_ALIAS_PROCESSING b/doc/props/P_SHOW_ALIAS_PROCESSING
index cb49cf8..94552dd 100644
--- a/doc/props/P_SHOW_ALIAS_PROCESSING
+++ b/doc/props/P_SHOW_ALIAS_PROCESSING
@@ -1,8 +1,21 @@
-NAME:
-    P_SHOW_ALIAS_PROCESSING       "show_alias_processing"       
 
-DEFINIERT IN:
-    /sys/player.h
+P_SHOW_ALIAS_PROCESSING
+***********************
 
-BESCHREIBUNG:
-     Arbeit des Parsers beobachten (debugging)
+
+NAME
+====
+
+   P_SHOW_ALIAS_PROCESSING       "show_alias_processing"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Arbeit des Parsers beobachten (debugging)
diff --git a/doc/props/P_SHOW_EXITS b/doc/props/P_SHOW_EXITS
index 9c8d87b..0e00886 100644
--- a/doc/props/P_SHOW_EXITS
+++ b/doc/props/P_SHOW_EXITS
@@ -1,15 +1,31 @@
-NAME:
-    P_SHOW_EXITS                  "show_exits"
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_SHOW_EXITS
+************
 
-BESCHREIBUNG:
-     Im Spieler gesetzt, wenn der Spieler die offensichtlichen Ausgaenge
-     immer automatisch sehen will.
 
-SIEHE AUCH:
-     Aehnliches:	P_HIDE_EXITS
-     Sonstiges:		AddExit(), GetExits(), int_long(), int_short()
+NAME
+====
 
-11. Mai 2004 Gloinson
\ No newline at end of file
+   P_SHOW_EXITS                  "show_exits"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Im Spieler gesetzt, wenn der Spieler die offensichtlichen Ausgaenge
+   immer automatisch sehen will.
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches:        P_HIDE_EXITS
+   Sonstiges:         AddExit(), GetExits(), int_long(), int_short()
+
+11. Mai 2004 Gloinson
diff --git a/doc/props/P_SHOW_INV b/doc/props/P_SHOW_INV
index 73a2ffe..e982154 100644
--- a/doc/props/P_SHOW_INV
+++ b/doc/props/P_SHOW_INV
@@ -1,19 +1,32 @@
+
 P_SHOW_INV
+**********
 
-NAME:
-     P_SHOW_INV "show_inv"
 
-DEFINIERT IN:
-     <thing/description.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Wenn diese Property auf einen Wert ungleich 0 gesetzt ist, wird das
-     Objekt, soweit es sich in einem Spieler befindet, in dessen
-     Langbeschreibung angezeigt. Zur Anzeige wird der Name des Objektes
-     verwendet.
+   P_SHOW_INV "show_inv"
 
-SIEHE AUCH:
-     /std/thing/description.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   <thing/description.h>
+
+
+BESCHREIBUNG
+============
+
+   Wenn diese Property auf einen Wert ungleich 0 gesetzt ist, wird das
+   Objekt, soweit es sich in einem Spieler befindet, in dessen
+   Langbeschreibung angezeigt. Zur Anzeige wird der Name des Objektes
+   verwendet.
+
+
+SIEHE AUCH
+==========
+
+   /std/thing/description.c
+
 Last modified: Sun May 19 20:36:05 1996 by Wargon
diff --git a/doc/props/P_SHOW_MSG b/doc/props/P_SHOW_MSG
index 8841154..c19c49f 100644
--- a/doc/props/P_SHOW_MSG
+++ b/doc/props/P_SHOW_MSG
@@ -1,51 +1,69 @@
+
 P_SHOW_MSG
-NAME:
-    P_SHOW_MSG                          "show_message"
+**********
 
-DEFINIERT IN:
-    /sys/living/put_and_get.h
 
-BESCHREIBUNG:
-    Mit P_SHOW_MSG kann man die Meldungen, die beim Vorzeigen eines Objektes
-    ausgegeben werden, modifizieren.
+NAME
+====
 
-    Folgende Werte sind moeglich:
+   P_SHOW_MSG                          "show_message"
 
-    o 0
-      Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
 
-    o NO_PNG_MSG        == -1
-      Es wird keinerlei Meldung ausgegeben
+DEFINIERT IN
+============
 
-    o Ein Array aus Strings
-      Der erste String wird an den Spieler ausgegeben, der zweite
-      (optionale) an den Raum, der dritte (ebenfalls optionale) an den
-      Empfaenger.
+   /sys/living/put_and_get.h
 
-      Die Strings werden durch die Funktion replace_personal() geparst.
-        Objekt1 - Spieler
-        Objekt2 - das Objekt, das uebergeben wird
-        Objekt3 - Empfaenger
 
-      Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
-      Raum. Beim Fehlen des dritten gibt es keine Meldung an den Empfaenger.
+BESCHREIBUNG
+============
 
-BEISPIEL:
-    SetProp(P_SHOW_MSG, ({
-      "Du haeltst @WEM3 @WEN2 unter die Nase.",
-      "@WER1 haelt @WEM3 @WENU2 unter die Nase.",
-      "@WER1 haelt Dir @WENU2 unter die Nase."
-    }));
+   Mit P_SHOW_MSG kann man die Meldungen, die beim Vorzeigen eines Objektes
+   ausgegeben werden, modifizieren.
 
-    Das fuehrt bei Ugars "zeig peter medaille" zu folgenden Meldungen:
+   Folgende Werte sind moeglich:
 
-    Ugar: "Du haeltst Peter die Medaille unter die Nase."
-    Raum: "Ugar haelt Peter eine Medaille unter die Nase."
-    Peter: "Ugar haelt Dir eine Medaille unter die Nase."
+   o 0
+     Es wird eine Standardmeldung ausgegeben. Dies ist Voreinstellung.
 
-SIEHE AUCH:
-     Aehnliches: P_DROP_MSG, P_PUT_MSG, P_PICK_MSG, P_GIVE_MSG
-     Sonstiges:  replace_personal(E), show(L), show_objects(L),
-                 show_notify(L), /std/living/put_and_get.c
+   o NO_PNG_MSG        == -1
+     Es wird keinerlei Meldung ausgegeben
+
+   o Ein Array aus Strings
+     Der erste String wird an den Spieler ausgegeben, der zweite
+     (optionale) an den Raum, der dritte (ebenfalls optionale) an den
+     Empfaenger.
+
+     Die Strings werden durch die Funktion replace_personal() geparst.
+       Objekt1 - Spieler
+       Objekt2 - das Objekt, das uebergeben wird
+       Objekt3 - Empfaenger
+
+     Wird der zweite String nicht angegeben, erfolgt keine Meldung an den
+     Raum. Beim Fehlen des dritten gibt es keine Meldung an den Empfaenger.
+
+
+BEISPIEL
+========
+
+   SetProp(P_SHOW_MSG, ({
+     "Du haeltst @WEM3 @WEN2 unter die Nase.",
+     "@WER1 haelt @WEM3 @WENU2 unter die Nase.",
+     "@WER1 haelt Dir @WENU2 unter die Nase."
+   }));
+
+   Das fuehrt bei Ugars "zeig peter medaille" zu folgenden Meldungen:
+
+   Ugar: "Du haeltst Peter die Medaille unter die Nase."
+   Raum: "Ugar haelt Peter eine Medaille unter die Nase."
+   Peter: "Ugar haelt Dir eine Medaille unter die Nase."
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_DROP_MSG, P_PUT_MSG, P_PICK_MSG, P_GIVE_MSG
+   Sonstiges:  replace_personal(E), show(L), show_objects(L),
+               show_notify(L), /std/living/put_and_get.c
 
 3. Juni 2008 Amynthor
diff --git a/doc/props/P_SIBLINGS b/doc/props/P_SIBLINGS
index 15d0977..6e18f0c 100644
--- a/doc/props/P_SIBLINGS
+++ b/doc/props/P_SIBLINGS
@@ -1,9 +1,22 @@
-NAME:
-    P_SIBLINGS                     "siblings"                     
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_SIBLINGS
+**********
 
-BESCHREIBUNG:
-     Enthaelt einen String mit den Blutsbruedern eines Spielers
-     (sofern vorhanden).
+
+NAME
+====
+
+   P_SIBLINGS                     "siblings"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt einen String mit den Blutsbruedern eines Spielers
+   (sofern vorhanden).
diff --git a/doc/props/P_SIZE b/doc/props/P_SIZE
index b5fdb72..aa311f3 100644
--- a/doc/props/P_SIZE
+++ b/doc/props/P_SIZE
@@ -1,31 +1,50 @@
-NAME:
-    P_SIZE                        "size"                        
 
-DEFINIERT IN:
-    /sys/properties.h
+P_SIZE
+******
 
-BESCHREIBUNG:
-     Groesse des Lebewesens bzw. Laenge der Waffe (in cm).
 
-     Wird keine Waffenlaenge explizit angegeben, so sind die Defaultwerte
-     fuer die entsprechenden Waffentypen folgende:
+NAME
+====
 
-    	WT_SWORD  : 100
-    	WT_AXE    :  80
-    	WT_CLUB   :  80
-    	WT_SPEAR  : 180
-    	WT_KNIFE  :  20
-    	WT_WHIP   : 200
-    	WT_STAFF  : 150
+   P_SIZE                        "size"
 
-BEMERKUNGEN:
-     1. Uebertreibt es bitte mit der Groesse nicht, auch sehr grosse NPCs 
-        sollten nicht ueber 1000000 liegen. Sonst kriegt die Karategilde 
-        Probleme.
-     2. Negative Werte fuer P_SIZE sind nicht moeglich, da dies zum einen
-        voellig unsinnig ist und zum anderen evtl. zu Problemen mit Waffen
-        fuehrt, die Schaden in Abhaengigkeit von P_SIZE machen und sich
-        darauf verlassen, dass nur positive Werte vorkommen.
 
-LETZTE AENDERUNG:
-    2006-09-29, von Zesstra
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Groesse des Lebewesens bzw. Laenge der Waffe (in cm).
+
+   Wird keine Waffenlaenge explizit angegeben, so sind die Defaultwerte
+   fuer die entsprechenden Waffentypen folgende:
+
+      WT_SWORD  : 100
+      WT_AXE    :  80
+      WT_CLUB   :  80
+      WT_SPEAR  : 180
+      WT_KNIFE  :  20
+      WT_WHIP   : 200
+      WT_STAFF  : 150
+
+
+BEMERKUNGEN
+===========
+
+   1. Uebertreibt es bitte mit der Groesse nicht, auch sehr grosse NPCs
+      sollten nicht ueber 1000000 liegen. Sonst kriegt die Karategilde
+      Probleme.
+   2. Negative Werte fuer P_SIZE sind nicht moeglich, da dies zum einen
+      voellig unsinnig ist und zum anderen evtl. zu Problemen mit Waffen
+      fuehrt, die Schaden in Abhaengigkeit von P_SIZE machen und sich
+      darauf verlassen, dass nur positive Werte vorkommen.
+
+
+LETZTE AENDERUNG
+================
+
+   2006-09-29, von Zesstra
diff --git a/doc/props/P_SKILLS b/doc/props/P_SKILLS
index 02a76c7..492cbbe 100644
--- a/doc/props/P_SKILLS
+++ b/doc/props/P_SKILLS
@@ -1,15 +1,30 @@
-NAME:
-	P_SKILLS			"skills"                      
 
-DEFINIERT IN:
-	/sys/player/skills.h
+P_SKILLS
+********
 
-BESCHREIBUNG:
-	Diese Property sollte nicht mehr verwendet werden. Sie wurde
-	vollstaendig durch P_NEWSKILLS ersetzt.
 
-SIEHE AUCH:
-	P_NEW_SKILLS
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_SKILLS                        "skills"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property sollte nicht mehr verwendet werden. Sie wurde
+   vollstaendig durch P_NEWSKILLS ersetzt.
+
+
+SIEHE AUCH
+==========
+
+   P_NEW_SKILLS
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_SKILL_ATTRIBUTES b/doc/props/P_SKILL_ATTRIBUTES
index 6eb5b97..066bd78 100644
--- a/doc/props/P_SKILL_ATTRIBUTES
+++ b/doc/props/P_SKILL_ATTRIBUTES
@@ -1,50 +1,69 @@
-NAME:
-    P_SKILL_ATTRIBUTES        "skill_attr"
 
-DEFINIERT IN:
-    /sys/living/skill_attributes.h
+P_SKILL_ATTRIBUTES
+******************
 
-BESCHREIBUNG:
-    In dieser Prop stehen alle nicht-permanenten Modifikatoren der
-    Skill-Attribute.
-    Die Datenstruktur ist ein Mapping mit den SA-Namen als Schluessel und
-    jeweils drei Werten pro Schluessel.
-    Der erste Wert ist ein Array mit drei Werten: der Summe der stat.
-    Modifier, dem Zeitpunkt an dem dies Summe ungueltig wird und der
-    Gesamtzahl aktiver Modifikatoren.
-    Der zweite Wert enthaelt ein Mapping mit allen statischen Modifikatoren
-    und den Objekten dieser Mods als Schluessel. Die beiden Werte dieses
-    Mappings sind der Wert des Modifikators (int) und die Ablaufzeit (int).
-    Der dritte Wert enthaelt ein Mapping mit allen dynamischen
-    Modifikatoren und den Objekten dieser Mods als Schluessel. Die beiden
-    Werte dieses Mappings sind die zu rufende Closure (closure) und die
-    Ablaufzeit des Mods (int).
 
-    ([ SA_ATTR: ({Summe_Stat_Modifier, Zeitpunkt, AnzahlModifier, });
-                ([ ob1:value;duration,
-                   ob2:value;duration, ...]);  // stat. Modifier
-                ([ ob1:closure;duration,
-                   ob2:closure;duration, ...])     // dyn. Modifier
-                ,
-       SA_ATTR2: ({...}); ([]); ([]),
-       SA_ATTR3: ({...}); ([]); ([]),
-    ])
+NAME
+====
 
-BEMERKUNGEN:
-    Diese Property darf AUF GAR KEINEN FALL per Hand manipuliert werden,
-    dafuer gibt es die Funktionen ModifySkillAttribute() und
-    RemoveSkillAttributeModifier().
-    Zum Auslesen stehen QuerySkillAttribute() und
-    QuerySkillAttributeModifier() zur Verfuegung.
+   P_SKILL_ATTRIBUTES        "skill_attr"
 
-SIEHE AUCH:
-    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
-    * Nutzung:      UseSpell, UseSkill
-    * Abfragen:     QuerySkill, QuerySkillAbility
-    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
-                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
-      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
-    * sonstig:      spruchermuedung, skill_info_liste
-    * Properties:   P_NEWSKILLS
 
-13.09.2008, Zesstra
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /sys/living/skill_attributes.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Prop stehen alle nicht-permanenten Modifikatoren der
+   Skill-Attribute.
+   Die Datenstruktur ist ein Mapping mit den SA-Namen als Schluessel und
+   jeweils drei Werten pro Schluessel.
+   Der erste Wert ist ein Array mit drei Werten: der Summe der stat.
+   Modifier, dem Zeitpunkt an dem dies Summe ungueltig wird und der
+   Gesamtzahl aktiver Modifikatoren.
+   Der zweite Wert enthaelt ein Mapping mit allen statischen Modifikatoren
+   und den Objekten dieser Mods als Schluessel. Die beiden Werte dieses
+   Mappings sind der Wert des Modifikators (int) und die Ablaufzeit (int).
+   Der dritte Wert enthaelt ein Mapping mit allen dynamischen
+   Modifikatoren und den Objekten dieser Mods als Schluessel. Die beiden
+   Werte dieses Mappings sind die zu rufende Closure (closure) und die
+   Ablaufzeit des Mods (int).
+
+   ([ SA_ATTR: ({Summe_Stat_Modifier, Zeitpunkt, AnzahlModifier, });
+               ([ ob1:value;duration,
+                  ob2:value;duration, ...]);  // stat. Modifier
+               ([ ob1:closure;duration,
+                  ob2:closure;duration, ...])     // dyn. Modifier
+               ,
+      SA_ATTR2: ({...}); ([]); ([]),
+      SA_ATTR3: ({...}); ([]); ([]),
+   ])
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property darf AUF GAR KEINEN FALL per Hand manipuliert werden,
+   dafuer gibt es die Funktionen ModifySkillAttribute() und
+   RemoveSkillAttributeModifier().
+   Zum Auslesen stehen QuerySkillAttribute() und
+   QuerySkillAttributeModifier() zur Verfuegung.
+
+
+SIEHE AUCH
+==========
+
+   Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+   * Nutzung:      UseSpell, UseSkill
+   * Abfragen:     QuerySkill, QuerySkillAbility
+   * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                   QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+     * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+   * sonstig:      spruchermuedung, skill_info_liste
+   * Properties:   P_NEWSKILLS
+
+13.09.2008, Zesstra
diff --git a/doc/props/P_SKILL_ATTRIBUTE_OFFSETS b/doc/props/P_SKILL_ATTRIBUTE_OFFSETS
index 2568f76..6bfcad3 100644
--- a/doc/props/P_SKILL_ATTRIBUTE_OFFSETS
+++ b/doc/props/P_SKILL_ATTRIBUTE_OFFSETS
@@ -1,32 +1,49 @@
-NAME:
-    P_SKILL_ATTRIBUTE_OFFSETS       "skill_attr_offsets"                        
 
-DEFINIERT IN:
-    /sys/living/skill_attributes.h
+P_SKILL_ATTRIBUTE_OFFSETS
+*************************
 
-BESHREIBUNG:
 
-    Der Wert der Property ist ein Mapping: ([Attributname: Wert])
-    In dieser Property stehen permanente Abweichungen der Skillattribute
-    vom Standardwert 100.
+NAME
+====
 
-    Zu den Moeglichen Attributwerten, siehe P_SKILL_ATTRIBUTES.
+   P_SKILL_ATTRIBUTE_OFFSETS       "skill_attr_offsets"
 
-    Die Werte duerfen zwischen 10 und 1000 liegen.
 
-BEMERKUNG:
-    Diese Property sollte AUF GAR KEINEN FALL in einem Spieler gesetzt
-    werden, ohne Ruecksprachen mit allerhoechsten Stellen!
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
-    * Nutzung:      UseSpell, UseSkill
-    * Abfragen:     QuerySkill, QuerySkillAbility
-    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
-                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
-      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
-    * sonstig:      spruchermuedung, skill_info_liste
-    * Properties:   P_NEWSKILLS
+   /sys/living/skill_attributes.h
+
+
+BESHREIBUNG
+===========
+
+   Der Wert der Property ist ein Mapping: ([Attributname: Wert])
+   In dieser Property stehen permanente Abweichungen der Skillattribute
+   vom Standardwert 100.
+
+   Zu den Moeglichen Attributwerten, siehe P_SKILL_ATTRIBUTES.
+
+   Die Werte duerfen zwischen 10 und 1000 liegen.
+
+
+BEMERKUNG
+=========
+
+   Diese Property sollte AUF GAR KEINEN FALL in einem Spieler gesetzt
+   werden, ohne Ruecksprachen mit allerhoechsten Stellen!
+
+
+SIEHE AUCH
+==========
+
+   Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+   * Nutzung:      UseSpell, UseSkill
+   * Abfragen:     QuerySkill, QuerySkillAbility
+   * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                   QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+     * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+   * sonstig:      spruchermuedung, skill_info_liste
+   * Properties:   P_NEWSKILLS
 
 31.12.2013, Zesstra
-
diff --git a/doc/props/P_SMELLS b/doc/props/P_SMELLS
index b510ce1..0098bd8 100644
--- a/doc/props/P_SMELLS
+++ b/doc/props/P_SMELLS
@@ -1,24 +1,43 @@
-NAME:
-    P_SMELLS            "smell_details"
 
-DEFINIERT IN:
-    /sys/thing/description.h
+P_SMELLS
+********
 
-BESCHREIBUNG:
-    Diese Property entspricht dem P_DETAILS fuer Standarddetails,
-    nur werden hierin Gerueche gespeichert:
-    Diese Property enthaelt ein Mapping, in der Details im Objekt
-    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
-    sich diese Details anschaut.
 
-BEMERKUNGEN:
-    Man sollte diese Property nicht per Hand veraendern, sondern die
-    Funktionen nutzen.
+NAME
+====
 
-SIEHE AUCH:
-    Setzen:    AddSmells()
-    Loeschen:  RemoveSmells()
-    Aehnlich:  AddDetail(), P_DETAILS
-    Sonstiges: GetDetail(), break_string()
+   P_SMELLS            "smell_details"
 
-27. Jan 2013 Gloinson
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property entspricht dem P_DETAILS fuer Standarddetails,
+   nur werden hierin Gerueche gespeichert:
+   Diese Property enthaelt ein Mapping, in der Details im Objekt
+   definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+   sich diese Details anschaut.
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte diese Property nicht per Hand veraendern, sondern die
+   Funktionen nutzen.
+
+
+SIEHE AUCH
+==========
+
+   Setzen:    AddSmells()
+   Loeschen:  RemoveSmells()
+   Aehnlich:  AddDetail(), P_DETAILS
+   Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
diff --git a/doc/props/P_SNOOPFLAGS b/doc/props/P_SNOOPFLAGS
index 4c47e39..340dde2 100644
--- a/doc/props/P_SNOOPFLAGS
+++ b/doc/props/P_SNOOPFLAGS
@@ -1,8 +1,21 @@
-NAME:
-    P_SNOOPFLAGS                  "snoopflags"                  
 
-DEFINIERT IN:
-    /sys/snooping.h
+P_SNOOPFLAGS
+************
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_SNOOPFLAGS                  "snoopflags"
+
+
+DEFINIERT IN
+============
+
+   /sys/snooping.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_SOUNDS b/doc/props/P_SOUNDS
index 9b9a350..520265b 100644
--- a/doc/props/P_SOUNDS
+++ b/doc/props/P_SOUNDS
@@ -1,24 +1,43 @@
-NAME:
-    P_SOUNDS            "sound_details"
 
-DEFINIERT IN:
-    /sys/thing/description.h
+P_SOUNDS
+********
 
-BESCHREIBUNG:
-    Diese Property entspricht dem P_DETAILS fuer Standarddetails,   
-    nur werden hierin Gerauesche gespeichert:
-    Diese Property enthaelt ein Mapping, in der Details im Objekt
-    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
-    sich diese Details anschaut.
 
-BEMERKUNGEN:
-    Man sollte diese Property nicht per Hand veraendern, sondern die
-    Funktionen nutzen.
+NAME
+====
 
-SIEHE AUCH:
-    Setzen:    AddSounds()
-    Loeschen:  RemoveSounds()
-    Aehnlich:  AddDetail(), P_DETAILS
-    Sonstiges: GetDetail(), break_string()
+   P_SOUNDS            "sound_details"
 
-27. Jan 2013 Gloinson
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property entspricht dem P_DETAILS fuer Standarddetails,
+   nur werden hierin Gerauesche gespeichert:
+   Diese Property enthaelt ein Mapping, in der Details im Objekt
+   definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+   sich diese Details anschaut.
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte diese Property nicht per Hand veraendern, sondern die
+   Funktionen nutzen.
+
+
+SIEHE AUCH
+==========
+
+   Setzen:    AddSounds()
+   Loeschen:  RemoveSounds()
+   Aehnlich:  AddDetail(), P_DETAILS
+   Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
diff --git a/doc/props/P_SP b/doc/props/P_SP
index 02bab65..fa30cb1 100644
--- a/doc/props/P_SP
+++ b/doc/props/P_SP
@@ -1,23 +1,37 @@
-NAME:
-    P_SP                          "sp"
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_SP
+****
 
-BESCHREIBUNG:
 
-     - Lebewesen
-       Anzahl der Konzentrationspunkte des Wesens.
+NAME
+====
 
-     - Speisen/Kneipen
-       Heilwirkung einer Portion der Speise auf die Konzentrationspunkte
-       des Konsumenten
+   P_SP                          "sp"
 
-SIEHE AUCH:
-     Props:		P_MAX_SP
-     Veraenderung:	reduce_spell_points(), restore_spell_points()
-			buffer_sp()
-     Speisen/Kneipen:   std/pub, wiz/food, consume
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   - Lebewesen
+     Anzahl der Konzentrationspunkte des Wesens.
+
+   - Speisen/Kneipen
+     Heilwirkung einer Portion der Speise auf die Konzentrationspunkte
+     des Konsumenten
+
+
+SIEHE AUCH
+==========
+
+   Props:             P_MAX_SP
+   Veraenderung:      reduce_spell_points(), restore_spell_points()
+                      buffer_sp()
+   Speisen/Kneipen:   std/pub, wiz/food, consume
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_SPECIAL_DETAILS b/doc/props/P_SPECIAL_DETAILS
index 2eb2123..9b3f63c 100644
--- a/doc/props/P_SPECIAL_DETAILS
+++ b/doc/props/P_SPECIAL_DETAILS
@@ -1,23 +1,42 @@
-NAME:
-    P_SPECIAL_DETAILS             "special_details"             
 
-DEFINIERT IN:
-    /sys/thing/description.h
+P_SPECIAL_DETAILS
+*****************
 
-BESCHREIBUNG:
-    Mapping von Details, die beim Anschauen eine Funktion starten.
 
-BEMERKUNGEN:
-    Dies ist keine "echte" Property. Die Daten werden bei der Abfrage in einer
-    Querymethode dynamisch aus P_DETAILS extrahiert. Dementsprechend
-    funktioniert es auch nicht, hier eine Query- oder Setmethode von aussen
-    drauf zu legen.
+NAME
+====
 
-SIEHE AUCH:
-    Setzen:    AddDetail()
-    Loeschen:  RemoveDetail()
-    Daten:     P_DETAILS
-    Veraltet:  AddSpecialDetail(), RemoveSpecialDetail()
-    Sonstiges: GetDetail(), break_string()
+   P_SPECIAL_DETAILS             "special_details"
 
-27. Jan 2013 Gloinson
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Mapping von Details, die beim Anschauen eine Funktion starten.
+
+
+BEMERKUNGEN
+===========
+
+   Dies ist keine "echte" Property. Die Daten werden bei der Abfrage in einer
+   Querymethode dynamisch aus P_DETAILS extrahiert. Dementsprechend
+   funktioniert es auch nicht, hier eine Query- oder Setmethode von aussen
+   drauf zu legen.
+
+
+SIEHE AUCH
+==========
+
+   Setzen:    AddDetail()
+   Loeschen:  RemoveDetail()
+   Daten:     P_DETAILS
+   Veraltet:  AddSpecialDetail(), RemoveSpecialDetail()
+   Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
diff --git a/doc/props/P_SPECIAL_EXITS b/doc/props/P_SPECIAL_EXITS
index 4672024..3f2a7a5 100644
--- a/doc/props/P_SPECIAL_EXITS
+++ b/doc/props/P_SPECIAL_EXITS
@@ -1,28 +1,51 @@
-NAME:
-    P_SPECIAL_EXITS               "special_exits"               
 
-DEFINIERT IN:
-    /sys/properties.h
+P_SPECIAL_EXITS
+***************
 
-BESCHREIBUNG:
-    Enthaelt ein Mapping (der Breite 2) mit den Ausgaengen, der Funktion,
-    die jeweils gerufen wird, wenn der Ausgang benutztwird und einer
-    Bewegungsmeldung.
-    
-    Die Bewegungsmeldung wird bei SpecialExits nicht ausgewertet, sondern
-    ist nur aufgrund der gemeinsamen Datenstruktur vorhanden. Im Normalfall
-    ist sie 0.
 
-BEMERKUNG:
-    Keine echte Property, wird bei der Abfrage aus P_EXITS erstellt.
-    
-    Zugriff nur mit den dafuer vorgesehenen Funktionen, nicht aendern!
+NAME
+====
 
-SIEHE AUCH:
-     AddExit(), AddSpecialExit(), GetExits(),
-     RemoveExit(), RemoveSpecialExit(),
-     GuardExit(),
-     H_HOOK_EXIT_USE, P_EXITS, P_HIDE_EXITS, /std/room/exits.c
-     ausgaenge
+   P_SPECIAL_EXITS               "special_exits"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt ein Mapping (der Breite 2) mit den Ausgaengen, der Funktion,
+   die jeweils gerufen wird, wenn der Ausgang benutztwird und einer
+   Bewegungsmeldung.
+
+
+
+   Die Bewegungsmeldung wird bei SpecialExits nicht ausgewertet, sondern
+   ist nur aufgrund der gemeinsamen Datenstruktur vorhanden. Im Normalfall
+   ist sie 0.
+
+
+BEMERKUNG
+=========
+
+   Keine echte Property, wird bei der Abfrage aus P_EXITS erstellt.
+
+
+
+   Zugriff nur mit den dafuer vorgesehenen Funktionen, nicht aendern!
+
+
+SIEHE AUCH
+==========
+
+   AddExit(), AddSpecialExit(), GetExits(),
+   RemoveExit(), RemoveSpecialExit(),
+   GuardExit(),
+   H_HOOK_EXIT_USE, P_EXITS, P_HIDE_EXITS, /std/room/exits.c
+   ausgaenge
 
 Letzte Aenderung: 22.12.2016, Bugfix
diff --git a/doc/props/P_SPELLRATE b/doc/props/P_SPELLRATE
index 1672a33..1a3e5a2 100644
--- a/doc/props/P_SPELLRATE
+++ b/doc/props/P_SPELLRATE
@@ -1,8 +1,21 @@
-NAME:
-    P_SPELLRATE                   "spellrate"                   
 
-DEFINIERT IN:
-    /sys/properties.h
+P_SPELLRATE
+***********
 
-BESCHREIBUNG:
-     NPC-Spellrate (in %)
+
+NAME
+====
+
+   P_SPELLRATE                   "spellrate"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   NPC-Spellrate (in %)
diff --git a/doc/props/P_SPELLS b/doc/props/P_SPELLS
index 17112fb..647daf4 100644
--- a/doc/props/P_SPELLS
+++ b/doc/props/P_SPELLS
@@ -1,8 +1,21 @@
-NAME:
-    P_SPELLS                      "spells"                      
 
-DEFINIERT IN:
-    /sys/properties.h
+P_SPELLS
+********
 
-BESCHREIBUNG:
-     NPC-Spells
+
+NAME
+====
+
+   P_SPELLS                      "spells"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   NPC-Spells
diff --git a/doc/props/P_SP_DELAY b/doc/props/P_SP_DELAY
index 84f6372..aa74360 100644
--- a/doc/props/P_SP_DELAY
+++ b/doc/props/P_SP_DELAY
@@ -1,10 +1,23 @@
-NAME:
-    P_SP_DELAY                 "sp_delay"                     
 
-DEFINIERT IN:
-    /sys/living/life.h
+P_SP_DELAY
+**********
 
-BESCHREIBUNG:
-     Anzahl der heart_beats, bis die Magiepunkte um einen Punkt steigen.
-     Aenderungen dieser Property in Spielern beduerfen der 
-     Genehmigung des EM fuer Balance.
+
+NAME
+====
+
+   P_SP_DELAY                 "sp_delay"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/life.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der heart_beats, bis die Magiepunkte um einen Punkt steigen.
+   Aenderungen dieser Property in Spielern beduerfen der
+   Genehmigung des EM fuer Balance.
diff --git a/doc/props/P_START_HOME b/doc/props/P_START_HOME
index 25fff2c..fd80124 100644
--- a/doc/props/P_START_HOME
+++ b/doc/props/P_START_HOME
@@ -1,8 +1,21 @@
-NAME:
-    P_START_HOME                  "start_home"                  
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_START_HOME
+************
 
-BESCHREIBUNG:
-     Raum, in dem der Spieler nach dem Einloggen landen soll
+
+NAME
+====
+
+   P_START_HOME                  "start_home"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Raum, in dem der Spieler nach dem Einloggen landen soll
diff --git a/doc/props/P_STD_OBJECT b/doc/props/P_STD_OBJECT
index 87e21da..7c66296 100644
--- a/doc/props/P_STD_OBJECT
+++ b/doc/props/P_STD_OBJECT
@@ -1,11 +1,24 @@
-NAME:
-    P_STD_OBJECT                  "std_object"                  
 
-DEFINIERT IN:
-    /sys/v_compiler.h
+P_STD_OBJECT
+************
 
-BESCHREIBUNG:
-   Enthaelt den Namen eines Files welches als Standard-Objekt fuer den 
+
+NAME
+====
+
+   P_STD_OBJECT                  "std_object"
+
+
+DEFINIERT IN
+============
+
+   /sys/v_compiler.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt den Namen eines Files welches als Standard-Objekt fuer den
    Virtual Compiler gelten soll.
 
    In diesem File werden das generelle Aussehen, Ausgaenge, Funktionen
@@ -13,14 +26,19 @@
 
    Dieses File ist ein 'normales' .c - File, welches geclont wird und
    anschliessend umbenannt wird.
-   
+
+
+
    Ganz wichtig: Falls euer Standardobjekt (direkt oder indirekt) von
    /std/room.c erbt, solltet ihr darauf achten, dass euer Objekt ausser dem
-   create() noch eine weitere (beliebige) Funktion hat.  
+   create() noch eine weitere (beliebige) Funktion hat.
    Ansonsten wuerde das Programm eures Standardobjekts automatisch durch
    /std/room.c ersetzt, was in der Regel zu schwer zu findenen Bugs fuehrt.
 
-BEISPIEL:
+
+BEISPIEL
+========
+
    (create eines VCs)
    protected void create() {
      ...
@@ -29,10 +47,13 @@
    }
 
    Was in diesem std_raum.c nun steht, wird in jedem VC-Clone
-   verfuegbar. Sei es Details, Gerueche, auch Objekte die per 
+   verfuegbar. Sei es Details, Gerueche, auch Objekte die per
    AddItem eingebunden sind, ...
 
-SIEHE AUCH:
+
+SIEHE AUCH
+==========
+
    P_COMPILER_PATH, virtual_compiler
------------------------------------------------------------------------
+
 Letzte Aenderung: 22.10.07 von Zesstra
diff --git a/doc/props/P_STORE_CONSUME b/doc/props/P_STORE_CONSUME
index 7b65641..8a9afd9 100644
--- a/doc/props/P_STORE_CONSUME
+++ b/doc/props/P_STORE_CONSUME
@@ -1,51 +1,69 @@
-NAME:
-	P_STORE_CONSUME			"store_consume"
 
-DEFINIERT IN:
-	/sys/bank.h
+P_STORE_CONSUME
+***************
 
-BESCHREIBUNG:
-	Diese Property ist entscheidend dafuer, wieviel Prozent an Objekten
-	bei jedem Reset in einem Lager eines Ladens vernichtet werden. Dies
-	geschieht aus Speicher- und Laggruenden. Es verbleibt dabei jedoch
-	eine Grundmenge an Objekten, deren Anzahl in der Property
-	P_MIN_STOCK festgehalten ist. Standardwert fuer P_STORE_CONSUME ist
-	hierbei 30%, aber in oft benutzten Laeden kann man dort ruhig einen
-	hoeheren Wert eintragen. Erlaubt sind Werte zwischen 0% und 100%.
-	Aufgeraeumt werden jedoch keine Objekte, die mittels AddItem() im
-	Lager eingebunden wurden. Mittels der Ladenfunktion AddFixedObject()
-	als staendig verfuegbar markierte Objekte werden natuerlich auch
-	nicht beruecksichtigt.
-	Beide hier erwaehnten Properties sollten ueberigens nur mittels
-	QueryProp/SetProp ausgelesen bzw. veraendert werden.
 
-BEISPIEL:
-	Ein eigener haeufig benutzter Laden koennte ein Lager in folgender
-	Form erhalten:
-	  // myStore
-	  #include <bank.h>
-	  inherit "std/store";
-	  void create()
-	  { ::create();
-	    SetProp(P_STORE_CONSUME,90);
-	    // keine weiteren Beschreibungen, Spieler sollen da drin
-	    // schliesslich nicht rumwuseln
-	  }
-	Um das Lager dem Laden zuzuweisen, nutzt man folgendes:
-	  // myShop
-	  inherit "std/laden";
-	  void create()
-	  { ::create();
-	    SetStorageRoom("pfad/myStore");
-	    // Beschreibungen folgen
-	    ...
-	  }
-	Es werden hierbei waehrend jedes Lager-Resets 90% der im Lager
-	befindlichen Objekte vernichtet.
+NAME
+====
 
-SIEHE AUCH:
-	P_MIN_STOCK, SetStorageRoom(), /std/store.c, /std/shop.c
-	AddItem(), RemoveItem(), AddFixedObject(), RemoveFixedObject()
+   P_STORE_CONSUME                 "store_consume"
 
-----------------------------------------------------------------------------
-Last modified: 19-Jun-2015, Arathorn 
+
+DEFINIERT IN
+============
+
+   /sys/bank.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property ist entscheidend dafuer, wieviel Prozent an Objekten
+   bei jedem Reset in einem Lager eines Ladens vernichtet werden. Dies
+   geschieht aus Speicher- und Laggruenden. Es verbleibt dabei jedoch
+   eine Grundmenge an Objekten, deren Anzahl in der Property
+   P_MIN_STOCK festgehalten ist. Standardwert fuer P_STORE_CONSUME ist
+   hierbei 30%, aber in oft benutzten Laeden kann man dort ruhig einen
+   hoeheren Wert eintragen. Erlaubt sind Werte zwischen 0% und 100%.
+   Aufgeraeumt werden jedoch keine Objekte, die mittels AddItem() im
+   Lager eingebunden wurden. Mittels der Ladenfunktion AddFixedObject()
+   als staendig verfuegbar markierte Objekte werden natuerlich auch
+   nicht beruecksichtigt.
+   Beide hier erwaehnten Properties sollten ueberigens nur mittels
+   QueryProp/SetProp ausgelesen bzw. veraendert werden.
+
+
+BEISPIEL
+========
+
+   Ein eigener haeufig benutzter Laden koennte ein Lager in folgender
+   Form erhalten:
+     // myStore
+     #include <bank.h>
+     inherit "std/store";
+     void create()
+     { ::create();
+       SetProp(P_STORE_CONSUME,90);
+       // keine weiteren Beschreibungen, Spieler sollen da drin
+       // schliesslich nicht rumwuseln
+     }
+   Um das Lager dem Laden zuzuweisen, nutzt man folgendes:
+     // myShop
+     inherit "std/laden";
+     void create()
+     { ::create();
+       SetStorageRoom("pfad/myStore");
+       // Beschreibungen folgen
+       ...
+     }
+   Es werden hierbei waehrend jedes Lager-Resets 90% der im Lager
+   befindlichen Objekte vernichtet.
+
+
+SIEHE AUCH
+==========
+
+   P_MIN_STOCK, SetStorageRoom(), /std/store.c, /std/shop.c
+   AddItem(), RemoveItem(), AddFixedObject(), RemoveFixedObject()
+
+Last modified: 19-Jun-2015, Arathorn
diff --git a/doc/props/P_STRETCH_TIME b/doc/props/P_STRETCH_TIME
index dfef4f1..1b38b7e 100644
--- a/doc/props/P_STRETCH_TIME
+++ b/doc/props/P_STRETCH_TIME
@@ -1,20 +1,34 @@
+
 P_STRETCH_TIME
+**************
 
-NAME:
-    P_STRETCH_TIME     "stretch_time"
 
-DEFINIERT IN:
-    <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-    Enthaelt die Zeit in Runden (2s), die man braucht, um eine Fernwaffe zu
-    spannen/benutzen. Zaehlt seit dem letzten Schuss oder der Zeit des
-    Zueckens (P_EQUIP_TIME).
+   P_STRETCH_TIME     "stretch_time"
 
-SIEHE AUCH:
-    Generell:  P_AMMUNITION, P_SHOOTING_WC
-    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
-    Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
-    Sonstiges: fernwaffen
 
-29.Jul 2014 Gloinson
\ No newline at end of file
+DEFINIERT IN
+============
+
+   <combat.h>
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt die Zeit in Runden (2s), die man braucht, um eine Fernwaffe zu
+   spannen/benutzen. Zaehlt seit dem letzten Schuss oder der Zeit des
+   Zueckens (P_EQUIP_TIME).
+
+
+SIEHE AUCH
+==========
+
+   Generell:  P_AMMUNITION, P_SHOOTING_WC
+   Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+   Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
+   Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
diff --git a/doc/props/P_SUBGUILD_TITLE b/doc/props/P_SUBGUILD_TITLE
index 58a59d5..83515d7 100644
--- a/doc/props/P_SUBGUILD_TITLE
+++ b/doc/props/P_SUBGUILD_TITLE
@@ -1,20 +1,38 @@
+
 P_SUBGUILD_TITLE
-NAME:
-     P_SUBGUILD_TITLE		"subguild_title"                       
+****************
 
-DEFINIERT IN:
-     /sys/new_skills.h
 
-BESCHREIBUNG:
-     Diese Property enthaelt eventuelle Zusatztitel eines Spielers, den er
-     innerhalb einer Gilde traegt. Das kann z.B. ein Clan sein, ein Zweig oder
-     einfach nur der Gildenrang.
+NAME
+====
 
-BEMERKUNGEN:
-     Inhalt der Property kann 0 sein oder ein String.  Ein Zusatztitel kann
-     mittels P_VISIBLE_SUBGUILD_TITLE vorgetaeuscht werden.
+   P_SUBGUILD_TITLE           "subguild_title"
 
-SIEHE AUCH:
-     P_GUILD_TITLE, P_VISIBLE_SUBGUILD_TITLE
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt eventuelle Zusatztitel eines Spielers, den er
+   innerhalb einer Gilde traegt. Das kann z.B. ein Clan sein, ein Zweig oder
+   einfach nur der Gildenrang.
+
+
+BEMERKUNGEN
+===========
+
+   Inhalt der Property kann 0 sein oder ein String.  Ein Zusatztitel kann
+   mittels P_VISIBLE_SUBGUILD_TITLE vorgetaeuscht werden.
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD_TITLE, P_VISIBLE_SUBGUILD_TITLE
 
 26. Maerz 2004 Gloinson
diff --git a/doc/props/P_SYNTAX_HELP b/doc/props/P_SYNTAX_HELP
index 13344f1..a796fb5 100644
--- a/doc/props/P_SYNTAX_HELP
+++ b/doc/props/P_SYNTAX_HELP
@@ -1,44 +1,62 @@
-NAME:
-    P_SYNTAX_HELP              "lib_p_syntax_help"
 
-DEFINIERT IN:
-    /sys/thing/commands.h
+P_SYNTAX_HELP
+*************
 
-BESCHREIBUNG:
-    In dieser Property kann man fuer Spieler eine ausfuehrliche Syntaxhilfe zu
-    den Kommandos eines Objektes ablegen. Diese wird angezeigt, wenn der
-    Spieler das Kommando "synxtaxhilfe <objekt>" eingibt.
-    Die Property kann verschiedene Datenstrukturen enthalten:
 
-    1) ein String
-    Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
-    Zeilenumbrueche werden beibehalten.
+NAME
+====
 
-    2) ein Array: ({hilfetext, bedingungen})
+   P_SYNTAX_HELP              "lib_p_syntax_help"
 
-    <hilfetext>:
-      * ein string:
-        Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
-        Zeilenumbrueche werden beibehalten.
-      * eine lfun-closure:
-        Diese erhaelt beim Aufruf das betreffende Objekt als Argument.
-        Wenn diese dann einen String zurueckliefert, wird dieser dem Spieler
-        angezeigt. Hierbei wird ggf. umgebrochen, vorhandene Zeilenumbrueche
-        werden beibehalten.
 
-    <bedingungen>, welche erfuellt sein muessen, damit dem Spieler die Hilfe
-    angezeigt wird. Die Bedingungen sind entweder:
-      * ein Mapping fuer check_restriction()
-      * eine lfun-closure
-        Diese erhaelt beim Aufruf das betreffende Objekt als Argument und darf
-        eine 0 fuer 'erlaubt', 1 fuer 'nicht erlaubt (mit Standardtext)' oder
-        einen string fuer 'nicht erlaubt mit individuellem Text' sein.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-    Hat ein Objekt keine Syntaxhilfe, wird das Kommando "syntaxhilfe" aus dem
-    Objekt wieder entfernt (d.h. die Property muss gesetzt sein, bevor der
-    erste Spieler das Kommando eingibt).
+   /sys/thing/commands.h
 
-SIEHE AUCH:
-    AddCmd
 
+BESCHREIBUNG
+============
+
+   In dieser Property kann man fuer Spieler eine ausfuehrliche Syntaxhilfe zu
+   den Kommandos eines Objektes ablegen. Diese wird angezeigt, wenn der
+   Spieler das Kommando "synxtaxhilfe <objekt>" eingibt.
+   Die Property kann verschiedene Datenstrukturen enthalten:
+
+   1) ein String
+   Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
+   Zeilenumbrueche werden beibehalten.
+
+   2) ein Array: ({hilfetext, bedingungen})
+
+   <hilfetext>:
+     * ein string:
+       Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
+       Zeilenumbrueche werden beibehalten.
+     * eine lfun-closure:
+       Diese erhaelt beim Aufruf das betreffende Objekt als Argument.
+       Wenn diese dann einen String zurueckliefert, wird dieser dem Spieler
+       angezeigt. Hierbei wird ggf. umgebrochen, vorhandene Zeilenumbrueche
+       werden beibehalten.
+
+   <bedingungen>, welche erfuellt sein muessen, damit dem Spieler die Hilfe
+   angezeigt wird. Die Bedingungen sind entweder:
+     * ein Mapping fuer check_restriction()
+     * eine lfun-closure
+       Diese erhaelt beim Aufruf das betreffende Objekt als Argument und darf
+       eine 0 fuer 'erlaubt', 1 fuer 'nicht erlaubt (mit Standardtext)' oder
+       einen string fuer 'nicht erlaubt mit individuellem Text' sein.
+
+
+BEMERKUNGEN
+===========
+
+   Hat ein Objekt keine Syntaxhilfe, wird das Kommando "syntaxhilfe" aus dem
+   Objekt wieder entfernt (d.h. die Property muss gesetzt sein, bevor der
+   erste Spieler das Kommando eingibt).
+
+
+SIEHE AUCH
+==========
+
+   AddCmd
diff --git a/doc/props/P_TARGET_AREA b/doc/props/P_TARGET_AREA
index 9d2cec9..614320f 100644
--- a/doc/props/P_TARGET_AREA
+++ b/doc/props/P_TARGET_AREA
@@ -1,75 +1,95 @@
+
 P_TARGET_AREA
+*************
 
-NAME:
-    P_TARGET_AREA     "target_area"
 
-DEFINIERT IN:
-    <combat.h>
+NAME
+====
 
-BESCHREIBUNG:
-    Kann in einem Raum gesetzt werden, um einen anderen, von dort aus mit
-    Fernkampfwaffen beschiessbaren Raum als Objekt oder Objektnamen (zu
-    einem geladenen Objekt) festzulegen.
+   P_TARGET_AREA     "target_area"
 
-BEMERKUNGEN:
-    Ein Schuetze kann nur in den anderen Raum schiessen, wenn die P_RANGE
-    seiner Waffe mindest gleich der P_SHOOTING_AREA des Raums (nicht des
-    Zielraums) ist.
 
-    Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
-    P_NEVER_CLEAN gesetzt sein.
+DEFINIERT IN
+============
 
-BEISPIELE:
-    // #1 Ein Baum-Raum (/std/room)
-    void create() {
-      ::create();
-      SetProp(P_INT_SHORT, "Auf einem Baum");
-      SetProp(P_INT_LONG, break_string("Du hockst auf einem Baum und kannst "
-        "auf die Lichtung unter Dir sehen.\n");
+   <combat.h>
 
-      AddExit("unten", RAEUME("lichtung"));
 
-      SetProp(P_TARGET_AREA, RAEUME("lichtung"));  // Lichtung beschiessbar
-      SetProp(P_SHOOTING_AREA, 15);                // 15 Entfernung
-    }
+BESCHREIBUNG
+============
 
-    // #2 Ein Elefanten-Transporter (/std/transport)
-    // Er trampelt durch mehrere Raeume durch und der Schuetze kann vom
-    // Ruecken des Elefanten aus auf Gegner draussen schiessen.
-    void create() {
-      ::create();
-      SetProp(P_NAME, "Kampfelefant");
-      AddId(({"elefant", "kampfelefant")});
-      SetProp(P_GENDER, MALE);
-      SetProp(P_SHORT, "Ein Kampfelefant");
-      SetProp(P_INT_SHORT, "Auf einem Kampfelefanten");
-      // P_LONG, P_INT_LONG
+   Kann in einem Raum gesetzt werden, um einen anderen, von dort aus mit
+   Fernkampfwaffen beschiessbaren Raum als Objekt oder Objektnamen (zu
+   einem geladenen Objekt) festzulegen.
 
-      SetProp(P_ENTERCMDS, ({"kletter", "erkletter"}));
-      SetProp(P_LEAVECMDS, ({"verlass", "verlasse"}));
 
-      SetProp(P_ARRIVEMSG, ({"Der Elefant trampelt in einen Raum.\n",
-                             "Ein Kampfelefant trampelt herein.\n"}));
-      SetProp(P_DEPARTMSG, ({"Der Elefant trampelt weiter.\n",
-                             "Der Kampfelefant trampelt weiter.\n"}));
+BEMERKUNGEN
+===========
 
-      SetProp(P_SHOOTING_AREA, 8); // weiter als 8 sollte man schiessen
+   Ein Schuetze kann nur in den anderen Raum schiessen, wenn die P_RANGE
+   seiner Waffe mindest gleich der P_SHOOTING_AREA des Raums (nicht des
+   Zielraums) ist.
 
-      AddRoute(RAEUME("schlachtfeld"), 20+random(10), 6, "Schlachtfeld");
-      AddRoute(RAEUME("burgtor"), 20+random(10), 6, "Burgtor");
-      AddRoute(RAEUME("burghof"), 20+random(10), 6, "Burghof");
-      AddRoute(RAEUME("halle"), 20+random(10), 6, "Halle");
-      AddRoute(RAEUME("bresche"), 20+random(10), 6, "Bresche");
-      // ...
+   Idealerweise sollte in mit P_TARGET_AREA angegebenen Raeumen auch
+   P_NEVER_CLEAN gesetzt sein.
 
-      Start();
-    }
 
-SIEHE AUCH:
-    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
-    Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
-    Gebiet:    P_RANGE, P_SHOOTING_AREA
-    Raeume:    P_NEVER_CLEAN
-    Sonstiges: fernwaffen
+BEISPIELE
+=========
 
-29.Jul 2014 Gloinson
\ No newline at end of file
+   // #1 Ein Baum-Raum (/std/room)
+   void create() {
+     ::create();
+     SetProp(P_INT_SHORT, "Auf einem Baum");
+     SetProp(P_INT_LONG, break_string("Du hockst auf einem Baum und kannst "
+       "auf die Lichtung unter Dir sehen.\n");
+
+     AddExit("unten", RAEUME("lichtung"));
+
+     SetProp(P_TARGET_AREA, RAEUME("lichtung"));  // Lichtung beschiessbar
+     SetProp(P_SHOOTING_AREA, 15);                // 15 Entfernung
+   }
+
+   // #2 Ein Elefanten-Transporter (/std/transport)
+   // Er trampelt durch mehrere Raeume durch und der Schuetze kann vom
+   // Ruecken des Elefanten aus auf Gegner draussen schiessen.
+   void create() {
+     ::create();
+     SetProp(P_NAME, "Kampfelefant");
+     AddId(({"elefant", "kampfelefant")});
+     SetProp(P_GENDER, MALE);
+     SetProp(P_SHORT, "Ein Kampfelefant");
+     SetProp(P_INT_SHORT, "Auf einem Kampfelefanten");
+     // P_LONG, P_INT_LONG
+
+     SetProp(P_ENTERCMDS, ({"kletter", "erkletter"}));
+     SetProp(P_LEAVECMDS, ({"verlass", "verlasse"}));
+
+     SetProp(P_ARRIVEMSG, ({"Der Elefant trampelt in einen Raum.\n",
+                            "Ein Kampfelefant trampelt herein.\n"}));
+     SetProp(P_DEPARTMSG, ({"Der Elefant trampelt weiter.\n",
+                            "Der Kampfelefant trampelt weiter.\n"}));
+
+     SetProp(P_SHOOTING_AREA, 8); // weiter als 8 sollte man schiessen
+
+     AddRoute(RAEUME("schlachtfeld"), 20+random(10), 6, "Schlachtfeld");
+     AddRoute(RAEUME("burgtor"), 20+random(10), 6, "Burgtor");
+     AddRoute(RAEUME("burghof"), 20+random(10), 6, "Burghof");
+     AddRoute(RAEUME("halle"), 20+random(10), 6, "Halle");
+     AddRoute(RAEUME("bresche"), 20+random(10), 6, "Bresche");
+     // ...
+
+     Start();
+   }
+
+
+SIEHE AUCH
+==========
+
+   Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
+   Methoden:  FindRangedTarget(L), shoot_dam(L), cmd_shoot(L)
+   Gebiet:    P_RANGE, P_SHOOTING_AREA
+   Raeume:    P_NEVER_CLEAN
+   Sonstiges: fernwaffen
+
+29.Jul 2014 Gloinson
diff --git a/doc/props/P_TEAM b/doc/props/P_TEAM
index f03109d..4f853e8 100644
--- a/doc/props/P_TEAM
+++ b/doc/props/P_TEAM
@@ -1,24 +1,39 @@
-NAME:
-	P_TEAM                         "team"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM
+******
 
-BESCHREIBUNG:
-	Liefert das Teamobjekt, falls Spieler in einem Team ist, sonst 0.
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
-                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
-                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_TEAM                         "team"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Liefert das Teamobjekt, falls Spieler in einem Team ist, sonst 0.
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+               P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+               P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_ASSOC_MEMBERS b/doc/props/P_TEAM_ASSOC_MEMBERS
index c4f95b8..b57a276 100644
--- a/doc/props/P_TEAM_ASSOC_MEMBERS
+++ b/doc/props/P_TEAM_ASSOC_MEMBERS
@@ -1,30 +1,48 @@
-NAME:
-	P_TEAM_ASSOC_MEMBERS           "team_assoc_members"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_ASSOC_MEMBERS
+********************
 
-BESCHREIBUNG:
-	Array mit den zugeordneten NPCs des Spielers bzw. der Spieler,
-	dem dieser NPC zugeordnet ist.
-	Zugeordnete NPCs sind automatisch im Team des Spielers.
 
-BEMERKUNG:
-	Der Zugriff auf diese Property sollte ueber AssocMember()
-	bzw. DeAssocMember() erfolgen.
+NAME
+====
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_TEAM, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
-                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
-                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+   P_TEAM_ASSOC_MEMBERS           "team_assoc_members"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Array mit den zugeordneten NPCs des Spielers bzw. der Spieler,
+   dem dieser NPC zugeordnet ist.
+   Zugeordnete NPCs sind automatisch im Team des Spielers.
+
+
+BEMERKUNG
+=========
+
+   Der Zugriff auf diese Property sollte ueber AssocMember()
+   bzw. DeAssocMember() erfolgen.
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_TEAM, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+               P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+               P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_ATTACK_CMD b/doc/props/P_TEAM_ATTACK_CMD
index 3f77349..b7993e7 100644
--- a/doc/props/P_TEAM_ATTACK_CMD
+++ b/doc/props/P_TEAM_ATTACK_CMD
@@ -1,24 +1,39 @@
-NAME:
-	P_TEAM_ATTACK_CMD              "team_attack_cmd"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_ATTACK_CMD
+*****************
 
-BESCHREIBUNG:
-	Angriffsbefehl des Spielers, nicht setzbar.
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_AUTOFOLLOW,
-                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
-                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_TEAM_ATTACK_CMD              "team_attack_cmd"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Angriffsbefehl des Spielers, nicht setzbar.
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_AUTOFOLLOW,
+               P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+               P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_AUTOFOLLOW b/doc/props/P_TEAM_AUTOFOLLOW
index 45be50f..0e8c45f 100644
--- a/doc/props/P_TEAM_AUTOFOLLOW
+++ b/doc/props/P_TEAM_AUTOFOLLOW
@@ -1,24 +1,39 @@
-NAME:
-	P_TEAM_AUTOFOLLOW              "team_autofollow"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_AUTOFOLLOW
+*****************
 
-BESCHREIBUNG:
-	Folgewunsch des Spielers, nicht setzbar.
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
-                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
-                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_TEAM_AUTOFOLLOW              "team_autofollow"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Folgewunsch des Spielers, nicht setzbar.
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+               P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+               P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_COLORS b/doc/props/P_TEAM_COLORS
index d23815d..a855035 100644
--- a/doc/props/P_TEAM_COLORS
+++ b/doc/props/P_TEAM_COLORS
@@ -1,25 +1,40 @@
-NAME:
-	P_TEAM_COLORS                  "team_colors"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_COLORS
+*************
 
-BESCHREIBUNG:
-	Grenzwerte fuer farbige Anzeige im Teaminfo.
-	Array mit 4 Werten: ({ lp_rot, lp_gelb, sp_rot, sp_gelb })
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
-                    P_TEAM_AUTOFOLLOW, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
-                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_TEAM_COLORS                  "team_colors"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Grenzwerte fuer farbige Anzeige im Teaminfo.
+   Array mit 4 Werten: ({ lp_rot, lp_gelb, sp_rot, sp_gelb })
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+               P_TEAM_AUTOFOLLOW, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+               P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_LEADER b/doc/props/P_TEAM_LEADER
index a123c37..b4927f3 100644
--- a/doc/props/P_TEAM_LEADER
+++ b/doc/props/P_TEAM_LEADER
@@ -1,24 +1,39 @@
-NAME:
-	P_TEAM_LEADER                  "team_leader"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_LEADER
+*************
 
-BESCHREIBUNG:
-	Liefert das Teamobjekt, falls Spieler Anfuehrer eines Teams ist.
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
-                    P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_NEWMEMBER,
-                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_TEAM_LEADER                  "team_leader"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Liefert das Teamobjekt, falls Spieler Anfuehrer eines Teams ist.
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+               P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_NEWMEMBER,
+               P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_NEWMEMBER b/doc/props/P_TEAM_NEWMEMBER
index f506c5b..da89b70 100644
--- a/doc/props/P_TEAM_NEWMEMBER
+++ b/doc/props/P_TEAM_NEWMEMBER
@@ -1,25 +1,40 @@
-NAME:
-	P_TEAM_NEWMEMBER               "potential_team_member"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_NEWMEMBER
+****************
 
-BESCHREIBUNG:
-	Enthaelt das Objekt des Teamleaders, sobald ein Spieler um
-	Teamaufnahme gebeten hat, sonst 0.
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
-                    P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_LEADER,
-                    P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_TEAM_NEWMEMBER               "potential_team_member"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt das Objekt des Teamleaders, sobald ein Spieler um
+   Teamaufnahme gebeten hat, sonst 0.
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
+               P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_LEADER,
+               P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_WANTED_ROW b/doc/props/P_TEAM_WANTED_ROW
index 7cd3c36..ba94af4 100644
--- a/doc/props/P_TEAM_WANTED_ROW
+++ b/doc/props/P_TEAM_WANTED_ROW
@@ -1,24 +1,39 @@
-NAME:
-	P_TEAM_WANTED_ROW              "team_wanted_row"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_WANTED_ROW
+*****************
 
-BESCHREIBUNG:
-	Gewuenschte Reihe des Spielers (von 1 bis MAX_TEAMROWS)
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
-                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
-                    P_TEAM_WIMPY_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_TEAM_WANTED_ROW              "team_wanted_row"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Gewuenschte Reihe des Spielers (von 1 bis MAX_TEAMROWS)
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+               P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+               P_TEAM_WIMPY_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TEAM_WIMPY_ROW b/doc/props/P_TEAM_WIMPY_ROW
index a832255..90bfacb 100644
--- a/doc/props/P_TEAM_WIMPY_ROW
+++ b/doc/props/P_TEAM_WIMPY_ROW
@@ -1,28 +1,46 @@
-NAME:
-	P_TEAM_WIMPY_ROW               "team_wimpy_row"
 
-DEFINIERT IN:
-	/sys/living/team.h
+P_TEAM_WIMPY_ROW
+****************
 
-BESCHREIBUNG:
-	Fluchtreihe des Spielers, von 1 bis MAX_TEAMROWS.
 
-BEMERKUNG:
-	Wenn die Fluchtreihe <=1 ist, ist die Flucht in eine hintere Reihe
-	deaktiviert.
+NAME
+====
 
-SIEHE AUCH:
-        Uebersicht: teamkampf
-        Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
-                    P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
-                    P_TEAM_WANTED_ROW
-        Bewegung:   IsTeamMove, TeamFlee
-        Mitglieder: IsTeamLeader, TeamMembers
-        Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
-                    SelectFarEnemy
-        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
-                    PresentTeamPosition, SwapRows
-        Sonstiges:  TeamPrefix, teamkampf_intern
+   P_TEAM_WIMPY_ROW               "team_wimpy_row"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/living/team.h
+
+
+BESCHREIBUNG
+============
+
+   Fluchtreihe des Spielers, von 1 bis MAX_TEAMROWS.
+
+
+BEMERKUNG
+=========
+
+   Wenn die Fluchtreihe <=1 ist, ist die Flucht in eine hintere Reihe
+   deaktiviert.
+
+
+SIEHE AUCH
+==========
+
+   Uebersicht: teamkampf
+   Properties: P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD, P_TEAM_AUTOFOLLOW,
+               P_TEAM_COLORS, P_TEAM_LEADER, P_TEAM_NEWMEMBER,
+               P_TEAM_WANTED_ROW
+   Bewegung:   IsTeamMove, TeamFlee
+   Mitglieder: IsTeamLeader, TeamMembers
+   Kampf:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
+               SelectFarEnemy
+   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
+               PresentTeamPosition, SwapRows
+   Sonstiges:  TeamPrefix, teamkampf_intern
+
 Last modified: 16-08-2010, Gabylon
diff --git a/doc/props/P_TELNET_RTTIME b/doc/props/P_TELNET_RTTIME
index fc30011..b781bea 100644
--- a/doc/props/P_TELNET_RTTIME
+++ b/doc/props/P_TELNET_RTTIME
@@ -1,25 +1,43 @@
-NAME:
-    P_TELNET_RTTIME                                  "p_lib_telnet_rttime"
 
-DEFINIERT IN:
-    /secure/telnetneg.h
+P_TELNET_RTTIME
+***************
 
-BESCHREIBUNG:
-    In dieser Properties steht die letzte gemessene 'round-trip' Zeit
-    (in Mikrosekunden) einer 'Telnet timing mark' vom MUD zum Client und
-    zurueck.
 
-    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
-    Telnetnegotiations unterstuetzt und 'telnet keepalive' eingeschaltet
-    ist, ansonsten bleibt diese Property 0.
-    Die meisten Telnets/Clients antworten zumindest eine Ablehnung auf
-    die 'timing marks', so dass trotzdem eine Zeit bestimmt werden kann.
+NAME
+====
 
-    Die Prop kann nicht gesetzt werden bzw. es hat keinen Effekt.
+   P_TELNET_RTTIME                                  "p_lib_telnet_rttime"
 
-SIEHE AUCH:
-    P_TTY_COLS, P_TTY_ROWS, P_TTY_SHOW, P_TTY, P_TTY_TYPE
 
-LETZTE AeNDERUNG:
-    03.02.2013, Zesstra
+DEFINIERT IN
+============
 
+   /secure/telnetneg.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Properties steht die letzte gemessene 'round-trip' Zeit
+   (in Mikrosekunden) einer 'Telnet timing mark' vom MUD zum Client und
+   zurueck.
+
+   Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+   Telnetnegotiations unterstuetzt und 'telnet keepalive' eingeschaltet
+   ist, ansonsten bleibt diese Property 0.
+   Die meisten Telnets/Clients antworten zumindest eine Ablehnung auf
+   die 'timing marks', so dass trotzdem eine Zeit bestimmt werden kann.
+
+   Die Prop kann nicht gesetzt werden bzw. es hat keinen Effekt.
+
+
+SIEHE AUCH
+==========
+
+   P_TTY_COLS, P_TTY_ROWS, P_TTY_SHOW, P_TTY, P_TTY_TYPE
+
+
+LETZTE AeNDERUNG
+================
+
+   03.02.2013, Zesstra
diff --git a/doc/props/P_TESTPLAYER b/doc/props/P_TESTPLAYER
index 6f64ade..bf0c765 100644
--- a/doc/props/P_TESTPLAYER
+++ b/doc/props/P_TESTPLAYER
@@ -1,29 +1,48 @@
-NAME:
-    P_TESTPLAYER                  "testplayer"                  
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_TESTPLAYER
+************
 
-BESCHREIBUNG:
-     Gesetzt, wenn der Spieler ein Testspieler ist. Enthaelt die UID des
-     Magiers, dem dieser Testie (momentan) gehoert.
-     
-     Bei Testspielern duerfen Skills geaendert werden, sie duerfen gezappt
-     werden und - ihre eigentliche Aufgabe - nicht angeschlossene Gebiete
-     testen.
 
-     AUSNAHMEN: Gildentesties duerfen nur sehr eingeschraenkt manipuliert
-                werden werden, da sie im ganzen Mud rumlaufen koennen,
-                Spielerkontakt haben und nach Abschluss der Tests ggf. sogar
-                die Testiemarkierung entfernt werden kann.
-                
-     Fuer Spielertesties, die von einem Spieler kontrolliert werden, gelten
-     teilweise besondere Regeln, s. 'spielertesties'.
+NAME
+====
 
-BEMERKUNGEN: 
-     P_TESTPLAYER kann nur per SetProp() gesetzt werden und das auch nur ein
-     Mal! Geloescht werden kann das Flag nur von EM+.
+   P_TESTPLAYER                  "testplayer"
 
-ZULETZT GEAeNDERT:
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt, wenn der Spieler ein Testspieler ist. Enthaelt die UID des
+   Magiers, dem dieser Testie (momentan) gehoert.
+
+
+
+   Bei Testspielern duerfen Skills geaendert werden, sie duerfen gezappt
+   werden und - ihre eigentliche Aufgabe - nicht angeschlossene Gebiete
+   testen.
+
+   AUSNAHMEN: Gildentesties duerfen nur sehr eingeschraenkt manipuliert
+              werden werden, da sie im ganzen Mud rumlaufen koennen,
+              Spielerkontakt haben und nach Abschluss der Tests ggf. sogar
+              die Testiemarkierung entfernt werden kann.
+
+
+
+   Fuer Spielertesties, die von einem Spieler kontrolliert werden, gelten
+   teilweise besondere Regeln, s. 'spielertesties'.
+
+BEMERKUNGEN:
+   P_TESTPLAYER kann nur per SetProp() gesetzt werden und das auch nur
+   ein Mal! Geloescht werden kann das Flag nur von EM+.
+
+
+ZULETZT GEAeNDERT
+=================
+
 05.01.2010, Zesstra
-
diff --git a/doc/props/P_TIMED_ATTR_MOD b/doc/props/P_TIMED_ATTR_MOD
index 1175c50..fa7db3f 100644
--- a/doc/props/P_TIMED_ATTR_MOD
+++ b/doc/props/P_TIMED_ATTR_MOD
@@ -1,59 +1,78 @@
-NAME:
-    P_TIMED_ATTR_MOD         "timed_attr_mod"
 
-DEFINIERT IN:
-    /sys/living/attributes.h
+P_TIMED_ATTR_MOD
+****************
 
-BESCHREIBUNG:
-    In dieser Property werden Attribut-Modifikatoren gespeichert, die
-    nicht ueber laengere Zeit wirksam sein sollen.
-    Die Wirksamkeit der Modifikatoren kann an Zeit und Objekte
-    gebunden werden.
 
-    Intern werden die Modifikatoren in einer Datenstruktur der Form
+NAME
+====
 
-    ({
-       ({ Ablaufzeiten }),
-       ([ Key : Ablaufobjekt ]),
-       ([ Key : ([ Mapping mit den Modifikatoren ]);
-         Ablaufzeit ; Ablaufobjekt ; Nachrichtenempfaenger
-       ])
-    })
+   P_TIMED_ATTR_MOD         "timed_attr_mod"
 
-    gespeichert mit:
-    * Ablaufzeiten:  Zeit in Sekunden seit 1. Jan 1970, 0.0:0 GMT
-    * Ablaufobjekte: Objekte, an deren Existenz die Attribut-
-                     veraenderungen gebunden sind
-    * Nachrichtenempfaenger:
-      Objekte/Klassen, welche ueber abgelaufene Attributveraenderung
-      durch den Aufruf von "NotifyTimedAttrModExpired" (mit key als
-      Argument) benachrichtigt werden.
 
-    Das Setzen der Werte erfolgt NUR ueber die Methoden SetTimedAttrModifier
-    und DeleteTimedAttrModifier.
+DEFINIERT IN
+============
 
-    Die Daten zu einem Key koennen ueber QueryTimedAttrModifier abgefragt
-    werden. Die Abfrage mittels QueryProp liefert eine Kopie der gueltigen
-    Datenstruktur, die per Query nicht (siehe Bemerkungen).
+   /sys/living/attributes.h
 
-    Die Bedingungen fuer die ueber P_TIMED_ATTR_MOD gesetzten
-    Attributveraenderungen werden im Heartbeat in der Funktion
-    attribute_hb ueberprueft. Eine verminderte Funktionalitaet im
-    Falle von Magiern ist somit kein Fehlerfall.
 
-BEMERKUNGEN:
-    Keine echte Property. Die Methode _query_timed_attr_mod() in
-    /std/living/attributes.c stellt die Daten zusammen.
+BESCHREIBUNG
+============
 
-    ACHTUNG: Bitte nur die bereitgestellten Methoden zur Manipulation
-             benutzen! Setzen als Property hat keinen Effekt.
+   In dieser Property werden Attribut-Modifikatoren gespeichert, die
+   nicht ueber laengere Zeit wirksam sein sollen.
+   Die Wirksamkeit der Modifikatoren kann an Zeit und Objekte
+   gebunden werden.
 
-SIEHE AUCH:
-    QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
-    SetAttribute(), SetRealAttribute(), UpdateAttributes(),
-    SetTimedAttrModifier(), QueryTimedAttrModifier(),
-    DeleteTimedAttrModifier(),
-    P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,
-    P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
-----------------------------------------------------------------------------
+   Intern werden die Modifikatoren in einer Datenstruktur der Form
+
+   ({
+      ({ Ablaufzeiten }),
+      ([ Key : Ablaufobjekt ]),
+      ([ Key : ([ Mapping mit den Modifikatoren ]);
+        Ablaufzeit ; Ablaufobjekt ; Nachrichtenempfaenger
+      ])
+   })
+
+   gespeichert mit:
+   * Ablaufzeiten:  Zeit in Sekunden seit 1. Jan 1970, 0.0:0 GMT
+   * Ablaufobjekte: Objekte, an deren Existenz die Attribut-
+                    veraenderungen gebunden sind
+   * Nachrichtenempfaenger:
+     Objekte/Klassen, welche ueber abgelaufene Attributveraenderung
+     durch den Aufruf von "NotifyTimedAttrModExpired" (mit key als
+     Argument) benachrichtigt werden.
+
+   Das Setzen der Werte erfolgt NUR ueber die Methoden SetTimedAttrModifier
+   und DeleteTimedAttrModifier.
+
+   Die Daten zu einem Key koennen ueber QueryTimedAttrModifier abgefragt
+   werden. Die Abfrage mittels QueryProp liefert eine Kopie der gueltigen
+   Datenstruktur, die per Query nicht (siehe Bemerkungen).
+
+   Die Bedingungen fuer die ueber P_TIMED_ATTR_MOD gesetzten
+   Attributveraenderungen werden im Heartbeat in der Funktion
+   attribute_hb ueberprueft. Eine verminderte Funktionalitaet im
+   Falle von Magiern ist somit kein Fehlerfall.
+
+
+BEMERKUNGEN
+===========
+
+   Keine echte Property. Die Methode _query_timed_attr_mod() in
+   /std/living/attributes.c stellt die Daten zusammen.
+
+   ACHTUNG: Bitte nur die bereitgestellten Methoden zur Manipulation
+            benutzen! Setzen als Property hat keinen Effekt.
+
+
+SIEHE AUCH
+==========
+
+   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+   SetTimedAttrModifier(), QueryTimedAttrModifier(),
+   DeleteTimedAttrModifier(),
+   P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,
+   P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
 Last modified: Tue Jul 27 20:00:20 2004 by Muadib
diff --git a/doc/props/P_TIMEZONE b/doc/props/P_TIMEZONE
index 8243d07..7e4ce7d 100644
--- a/doc/props/P_TIMEZONE
+++ b/doc/props/P_TIMEZONE
@@ -1,10 +1,23 @@
-NAME:
-    P_TIMEZONE                 "timezone"
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_TIMEZONE
+**********
 
-BESCHREIBUNG:
-     Ein Integer-Wert, der bei der Uhrzeitmeldung und beim Befehl
-     "(uhr)zeit" beruecksichtig wird. Gibt die Anzahl der Stunden
-     Zeitabweichung von Berliner Zeit an.
+
+NAME
+====
+
+   P_TIMEZONE                 "timezone"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Ein Integer-Wert, der bei der Uhrzeitmeldung und beim Befehl
+   "(uhr)zeit" beruecksichtig wird. Gibt die Anzahl der Stunden
+   Zeitabweichung von Berliner Zeit an.
diff --git a/doc/props/P_TITLE b/doc/props/P_TITLE
index 49afd57..555e26a 100644
--- a/doc/props/P_TITLE
+++ b/doc/props/P_TITLE
@@ -1,8 +1,21 @@
-NAME:
-    P_TITLE                       "title"                       
 
-DEFINIERT IN:
-    /sys/player/description.h
+P_TITLE
+*******
 
-BESCHREIBUNG:
-     Titel des Spielers. Erscheint hinter dem Namen in Kurz/Langbeschreibung.
+
+NAME
+====
+
+   P_TITLE                       "title"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/description.h
+
+
+BESCHREIBUNG
+============
+
+   Titel des Spielers. Erscheint hinter dem Namen in Kurz/Langbeschreibung.
diff --git a/doc/props/P_TOO_HEAVY_MSG b/doc/props/P_TOO_HEAVY_MSG
index 27ef315..c2a40ea 100644
--- a/doc/props/P_TOO_HEAVY_MSG
+++ b/doc/props/P_TOO_HEAVY_MSG
@@ -1,31 +1,50 @@
-NAME:
-    P_TOO_HEAVY_MSG                      "too_heavy_msg"                      
 
-DEFINIERT IN:
-    /sys/thing/moving.h
+P_TOO_HEAVY_MSG
+***************
 
-BESCHREIBUNG:
-     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
-     versucht, ein Objekt in einen Behaelter zu legen, fuer den dieses Objekt
-     zu schwer ist.
-     Die Property ist im Behaelter zu setzen.
-     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
-     so wird die Standardmeldung ausgegeben.
-     ("<Objekt> passt in <Behaelter> nicht mehr rein.")
-     Der String in der Property wird noch durch replace_personal()
-     verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
-     zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
-     umgebrochen.
-     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
-     ganz.
 
-BEISPIELE:
-     SetProp(P_TOO_HEAVY_MSG, "Wenn du @WEN1 noch in den Beutel stecken"
-			      " wuerdest, wuerde er reissen.");
+NAME
+====
 
-SIEHE AUCH:
-     Aehnliches: P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG, P_NOINSERT_MSG,
-                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
-                 P_WEAR_MSG, P_WIELD_MSG
-     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+   P_TOO_HEAVY_MSG                      "too_heavy_msg"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
+   versucht, ein Objekt in einen Behaelter zu legen, fuer den dieses Objekt
+   zu schwer ist.
+   Die Property ist im Behaelter zu setzen.
+   Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+   so wird die Standardmeldung ausgegeben.
+   ("<Objekt> passt in <Behaelter> nicht mehr rein.")
+   Der String in der Property wird noch durch replace_personal()
+   verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
+   zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+   umgebrochen.
+   Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+   ganz.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_TOO_HEAVY_MSG, "Wenn du @WEN1 noch in den Beutel stecken"
+                            " wuerdest, wuerde er reissen.");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_ENV_TOO_HEAVY_MSG, P_TOO_MANY_MSG, P_NOINSERT_MSG,
+               P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+               P_WEAR_MSG, P_WIELD_MSG
+   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
diff --git a/doc/props/P_TOO_MANY_MSG b/doc/props/P_TOO_MANY_MSG
index e23ce32..fd1ffe9 100644
--- a/doc/props/P_TOO_MANY_MSG
+++ b/doc/props/P_TOO_MANY_MSG
@@ -1,31 +1,50 @@
-NAME:
-    P_TOO_MANY_MSG                      "too_many_msg"                      
 
-DEFINIERT IN:
-    /sys/thing/moving.h
+P_TOO_MANY_MSG
+**************
 
-BESCHREIBUNG:
-     Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
-     versucht, ein Objekt in einen Behaelter zu legen, der schon die maximale
-     Anzahl an Objekten enthaelt.
-     Die Property ist im Behaelter zu setzen.
-     Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
-     so wird die Standardmeldung ausgegeben.
-     ("Dafuer ist nicht mehr genug Platz in <Behaelter>.")
-     Der String in der Property wird noch durch replace_personal()
-     verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
-     zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
-     umgebrochen.
-     Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
-     ganz.
 
-BEISPIELE:
-     SetProp(P_TOO_MANY_MSG, "Aber der Korb hat doch nur drei Faecher, die"
-			     " sind alle schon voll.");
+NAME
+====
 
-SIEHE AUCH:
-     Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_NOINSERT_MSG,
-                 P_NOLEAVE_MSG, P_NODROP, P_NOGET 
-     Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
-                 P_WEAR_MSG, P_WIELD_MSG
-     Sonstiges:  replace_personal(E), /std/living/put_and_get.c
+   P_TOO_MANY_MSG                      "too_many_msg"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/moving.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt eine Meldung, die ausgegeben wird, wenn jemand
+   versucht, ein Objekt in einen Behaelter zu legen, der schon die maximale
+   Anzahl an Objekten enthaelt.
+   Die Property ist im Behaelter zu setzen.
+   Ist diese Property nicht oder auf einen nicht-String-Wert gesetzt,
+   so wird die Standardmeldung ausgegeben.
+   ("Dafuer ist nicht mehr genug Platz in <Behaelter>.")
+   Der String in der Property wird noch durch replace_personal()
+   verarbeitet, das zu bewegende Objekt wird als erstes, der Behaelter als
+   zweites Objekt angegeben. Danach wird der String auf 78 Zeichen
+   umgebrochen.
+   Das Setzen eines leeren Strings unterdrueckt die Ausgabe einer Meldung
+   ganz.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_TOO_MANY_MSG, "Aber der Korb hat doch nur drei Faecher, die"
+                           " sind alle schon voll.");
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_NOINSERT_MSG,
+               P_NOLEAVE_MSG, P_NODROP, P_NOGET
+   Erfolg:     P_PICK_MSG, P_DROP_MSG, P_GIVE_MSG, P_PUT_MSG,
+               P_WEAR_MSG, P_WIELD_MSG
+   Sonstiges:  replace_personal(E), /std/living/put_and_get.c
diff --git a/doc/props/P_TOTAL_AC b/doc/props/P_TOTAL_AC
index 222cffa..baa9cf9 100644
--- a/doc/props/P_TOTAL_AC
+++ b/doc/props/P_TOTAL_AC
@@ -1,23 +1,42 @@
-NAME:
-    P_TOTAL_AC                    "total_ac"                    
 
-DEFINIERT IN:
-    /sys/living/combat.h
+P_TOTAL_AC
+**********
 
-BESCHREIBUNG:
-     Numerischer Wert der Abwehrstaerke des Wesens.
-     Dieser wird durch Aufaddieren der P_AC aller getragenen Ruestungen
-     bestimmt. Aus diesem Grund ist das Abfragen dieser Property ziemlich
-     teuer. Falls das Ergebnis mehrfach kurz hintereinander gebraucht wird,
-     sollte die Property auf jeden Fall nur einmal abgefragt und der Wert
-     gespeichert werden.
 
-BEMERKUNGEN:
-    Auf diese Property sollte nicht mittels Query() oder Set() zugegriffen
-    werden, das Setzen von Query- oder Setmethoden bitte auf jeden Fall
-    unterlassen.
+NAME
+====
 
-SIEHE AUCH:
-    P_AC
+   P_TOTAL_AC                    "total_ac"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert der Abwehrstaerke des Wesens.
+   Dieser wird durch Aufaddieren der P_AC aller getragenen Ruestungen
+   bestimmt. Aus diesem Grund ist das Abfragen dieser Property ziemlich
+   teuer. Falls das Ergebnis mehrfach kurz hintereinander gebraucht wird,
+   sollte die Property auf jeden Fall nur einmal abgefragt und der Wert
+   gespeichert werden.
+
+
+BEMERKUNGEN
+===========
+
+   Auf diese Property sollte nicht mittels Query() oder Set() zugegriffen
+   werden, das Setzen von Query- oder Setmethoden bitte auf jeden Fall
+   unterlassen.
+
+
+SIEHE AUCH
+==========
+
+   P_AC
 
 05.09.2008, Zesstra
diff --git a/doc/props/P_TOTAL_LIGHT b/doc/props/P_TOTAL_LIGHT
index 41006d2..f4f0083 100644
--- a/doc/props/P_TOTAL_LIGHT
+++ b/doc/props/P_TOTAL_LIGHT
@@ -1,23 +1,42 @@
-NAME:
-    P_TOTAL_LIGHT                 "total_light"
 
-DEFINIERT IN:
-    /sys/properties.h
+P_TOTAL_LIGHT
+*************
 
-BESCHREIBUNG:
-    Gibt das Lichtlevel an, das von einem Objekt ausgeht. Hierzu wird das
-    eigene Lichtlevel P_LIGHT mit dem gesamten Inhalt eines Containers
-    verrechnet.
 
-    Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
-    da das Lichtlevel ggf. neu berechnet werden muss!
+NAME
+====
 
-    Ein direktes setzen dieser Property ist NICHT moeglich, hierzu bitte
-    P_LIGHT benutzen!
+   P_TOTAL_LIGHT                 "total_light"
 
-BEMERKUNGEN:
-    Das ist die VON einem Objekt ausgehende Lichtstaerke. Fuer das IN einem
-    Raum herrschende Licht bitte P_INT_LIGHT abfragen!
 
-SIEHE AUCH:
-    P_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gibt das Lichtlevel an, das von einem Objekt ausgeht. Hierzu wird das
+   eigene Lichtlevel P_LIGHT mit dem gesamten Inhalt eines Containers
+   verrechnet.
+
+   Bitte _nur_ ueber QueryProp auf diese Property zugreifen,
+   da das Lichtlevel ggf. neu berechnet werden muss!
+
+   Ein direktes setzen dieser Property ist NICHT moeglich, hierzu bitte
+   P_LIGHT benutzen!
+
+
+BEMERKUNGEN
+===========
+
+   Das ist die VON einem Objekt ausgehende Lichtstaerke. Fuer das IN einem
+   Raum herrschende Licht bitte P_INT_LIGHT abfragen!
+
+
+SIEHE AUCH
+==========
+
+   P_LIGHT, P_INT_LIGHT, P_PLAYER_LIGHT, P_LIGHT_MODIFIER, CannotSee()
diff --git a/doc/props/P_TOTAL_OBJECTS b/doc/props/P_TOTAL_OBJECTS
index 5f01567..4e2d009 100644
--- a/doc/props/P_TOTAL_OBJECTS
+++ b/doc/props/P_TOTAL_OBJECTS
@@ -1,16 +1,32 @@
-NAME:
-    P_TOTAL_OBJECTS                "total_objects"                
 
-DEFINIERT IN:
-    /sys/container.h
+P_TOTAL_OBJECTS
+***************
 
-BESCHREIBUNG:
-     Anzahl der Objekte im Container. Diese Property kann man nur abfragen!
-     Es werden nur Objekte gezaehlt, deren Methode short() einen
-     Wert != 0 zurueckgibt. Insofern koennen Spielern beliebig
-     viele unsichtbare Objekte gegeben werden ohne sie zu behindern.
 
-SIEHE AUCH:
-     P_MAX_OBJECTS
+NAME
+====
+
+   P_TOTAL_OBJECTS                "total_objects"
+
+
+DEFINIERT IN
+============
+
+   /sys/container.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der Objekte im Container. Diese Property kann man nur abfragen!
+   Es werden nur Objekte gezaehlt, deren Methode short() einen
+   Wert != 0 zurueckgibt. Insofern koennen Spielern beliebig
+   viele unsichtbare Objekte gegeben werden ohne sie zu behindern.
+
+
+SIEHE AUCH
+==========
+
+   P_MAX_OBJECTS
 
 26.Jan 2005 Gloinson
diff --git a/doc/props/P_TOTAL_WC b/doc/props/P_TOTAL_WC
index 35ef4a9..19349f0 100644
--- a/doc/props/P_TOTAL_WC
+++ b/doc/props/P_TOTAL_WC
@@ -1,27 +1,45 @@
-NAME:
-	P_TOTAL_WC			"total_wc"
 
-DEFINIERT IN:
-	/sys/properties.h
+P_TOTAL_WC
+**********
 
-BESCHREIBUNG:
-	In dieser Property wird der numerische Wert der Angriffsstaerke
-	eines Lebewesens registriert.
-  Hierzu werden die P_WC von P_WEAPON bzw. P_HANDS sowie die Kraft des
-  Lebewesens beruecksichtigt.
-	Nicht eingerechnet in die Angriffsstaerke sind natuerlich Extraspells und
-  -skills des Angreifers.
-  Braucht man den Wert mehrfach kurz hintereinander, sollte man die Prop aber
-  nur einmal abfragen und den Wert speichern (sofern sich in der Zwischenzeit
-  nichts an der Waffe, den Hands oder den Attributen des Lebenwesens aendert).
 
-BEMERKUNGEN:
-  Auf diese Property sollte nicht mittels Query() oder Set() zugegriffen 
-  werden, das Setzen von Query- oder Setmethoden bitte auf jeden Fall 
-  unterlassen.
+NAME
+====
 
-SIEHE AUCH:
-	P_HANDS, P_WC, P_XP
+   P_TOTAL_WC                      "total_wc"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+         In dieser Property wird der numerische Wert der Angriffsstaerke
+         eines Lebewesens registriert.
+   Hierzu werden die P_WC von P_WEAPON bzw. P_HANDS sowie die Kraft des
+   Lebewesens beruecksichtigt.
+         Nicht eingerechnet in die Angriffsstaerke sind natuerlich Extraspells und
+   -skills des Angreifers.
+   Braucht man den Wert mehrfach kurz hintereinander, sollte man die Prop aber
+   nur einmal abfragen und den Wert speichern (sofern sich in der Zwischenzeit
+   nichts an der Waffe, den Hands oder den Attributen des Lebenwesens aendert).
+
+
+BEMERKUNGEN
+===========
+
+   Auf diese Property sollte nicht mittels Query() oder Set() zugegriffen
+   werden, das Setzen von Query- oder Setmethoden bitte auf jeden Fall
+   unterlassen.
+
+
+SIEHE AUCH
+==========
+
+   P_HANDS, P_WC, P_XP
+
 05.09.2008, Zesstra
diff --git a/doc/props/P_TOTAL_WEIGHT b/doc/props/P_TOTAL_WEIGHT
index 2b62db1..bdb72f6 100644
--- a/doc/props/P_TOTAL_WEIGHT
+++ b/doc/props/P_TOTAL_WEIGHT
@@ -1,8 +1,21 @@
-NAME:
-    P_TOTAL_WEIGHT                "total_weight"                
 
-DEFINIERT IN:
-    /sys/thing/restrictions.h
+P_TOTAL_WEIGHT
+**************
 
-BESCHREIBUNG:
-     Gewicht incl. Inhalt in Gramm. P_WEIGHT_PERCENT wird beruecksichtigt.
+
+NAME
+====
+
+   P_TOTAL_WEIGHT                "total_weight"
+
+
+DEFINIERT IN
+============
+
+   /sys/thing/restrictions.h
+
+
+BESCHREIBUNG
+============
+
+   Gewicht incl. Inhalt in Gramm. P_WEIGHT_PERCENT wird beruecksichtigt.
diff --git a/doc/props/P_TOUCH_DETAILS b/doc/props/P_TOUCH_DETAILS
index d0670f6..f4345db 100644
--- a/doc/props/P_TOUCH_DETAILS
+++ b/doc/props/P_TOUCH_DETAILS
@@ -1,24 +1,43 @@
-NAME:
-    P_TOUCH_DETAILS            "touch_details"
 
-DEFINIERT IN:
-    /sys/thing/description.h
+P_TOUCH_DETAILS
+***************
 
-BESCHREIBUNG:
-    Diese Property entspricht dem P_DETAILS fuer Standarddetails,
-    nur werden hierin Gerueche gespeichert:
-    Diese Property enthaelt ein Mapping, in der Details im Objekt
-    definiert werden und Beschreibungen, die ausgegeben werden, wenn man
-    sich diese Details anschaut.
 
-BEMERKUNGEN:
-    Man sollte diese Property nicht per Hand veraendern, sondern die
-    Funktionen nutzen.
+NAME
+====
 
-SIEHE AUCH:
-    Setzen:    AddTouchDetail()
-    Loeschen:  RemoveTouchDetail()
-    Aehnlich:  AddDetail(), P_DETAILS
-    Sonstiges: GetDetail(), break_string()
+   P_TOUCH_DETAILS            "touch_details"
 
-27. Jan 2013 Gloinson
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/thing/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property entspricht dem P_DETAILS fuer Standarddetails,
+   nur werden hierin Gerueche gespeichert:
+   Diese Property enthaelt ein Mapping, in der Details im Objekt
+   definiert werden und Beschreibungen, die ausgegeben werden, wenn man
+   sich diese Details anschaut.
+
+
+BEMERKUNGEN
+===========
+
+   Man sollte diese Property nicht per Hand veraendern, sondern die
+   Funktionen nutzen.
+
+
+SIEHE AUCH
+==========
+
+   Setzen:    AddTouchDetail()
+   Loeschen:  RemoveTouchDetail()
+   Aehnlich:  AddDetail(), P_DETAILS
+   Sonstiges: GetDetail(), break_string()
+
+27. Jan 2013 Gloinson
diff --git a/doc/props/P_TPORT_COST_IN b/doc/props/P_TPORT_COST_IN
index d15e948..f2e51a9 100644
--- a/doc/props/P_TPORT_COST_IN
+++ b/doc/props/P_TPORT_COST_IN
@@ -1,9 +1,22 @@
-NAME:
-    P_TPORT_COST_IN               "tport_cost_in"               
 
-DEFINIERT IN:
-    /sys/properties.h
+P_TPORT_COST_IN
+***************
 
-BESCHREIBUNG:
-     In einem Raum mit Sehertor: Kostenanteil, um sich in den Raum zu
-     teleportieren
+
+NAME
+====
+
+   P_TPORT_COST_IN               "tport_cost_in"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   In einem Raum mit Sehertor: Kostenanteil, um sich in den Raum zu
+   teleportieren
diff --git a/doc/props/P_TPORT_COST_OUT b/doc/props/P_TPORT_COST_OUT
index 369a35d..c97c752 100644
--- a/doc/props/P_TPORT_COST_OUT
+++ b/doc/props/P_TPORT_COST_OUT
@@ -1,9 +1,22 @@
-NAME:
-    P_TPORT_COST_OUT              "tport_cost_out"              
 
-DEFINIERT IN:
-    /sys/properties.h
+P_TPORT_COST_OUT
+****************
 
-BESCHREIBUNG:
-     In einem Raum mit Sehertor: Kostenanteil, sich aus dem Raum heraus
-     zu teleportieren
+
+NAME
+====
+
+   P_TPORT_COST_OUT              "tport_cost_out"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   In einem Raum mit Sehertor: Kostenanteil, sich aus dem Raum heraus
+   zu teleportieren
diff --git a/doc/props/P_TRANK_FINDEN b/doc/props/P_TRANK_FINDEN
index 8db2365..a3e270d 100644
--- a/doc/props/P_TRANK_FINDEN
+++ b/doc/props/P_TRANK_FINDEN
@@ -1,9 +1,22 @@
-NAME:
-    P_TRANK_FINDEN                "trank_finden"                
 
-DEFINIERT IN:
-    /sys/player/potion.h
+P_TRANK_FINDEN
+**************
 
-BESCHREIBUNG:
-     Wenn die Property auf 1 steht kann immer ein Zaubertrank gefunden
-     werden, auch wenn er nicht in der Liste des Spielers steht.
+
+NAME
+====
+
+   P_TRANK_FINDEN                "trank_finden"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/potion.h
+
+
+BESCHREIBUNG
+============
+
+   Wenn die Property auf 1 steht kann immer ein Zaubertrank gefunden
+   werden, auch wenn er nicht in der Liste des Spielers steht.
diff --git a/doc/props/P_TRANSPARENT b/doc/props/P_TRANSPARENT
index a081b00..56c0558 100644
--- a/doc/props/P_TRANSPARENT
+++ b/doc/props/P_TRANSPARENT
@@ -1,29 +1,46 @@
+
 P_TRANSPARENT
-NAME:
-     P_TRANSPARENT                 "transparent"
+*************
 
-DEFINIERT IN:
-     /sys/container.h
 
-BESCHREIBUNG:
-     ist != 0, wenn in einen Container hinein (offen) oder aus einem 
-     hinausgeschaut werden kann.
+NAME
+====
 
-     Schaut man aus einem hinaus, erhaelt der Spieler normalerweise die 
-     Meldung 'Ausserhalb siehst Du:'. Diese kann jedoch durch eine eigene, 
-     stimmigere  Meldung ersetzt werden, wenn in P_TRANSPARENT ein String 
-     mit dieser Meldung angegeben wird.
+   P_TRANSPARENT                 "transparent"
 
-BEISPIEL:
-     SetProp(P_TRANSPARENT,1); -> normale Meldung
 
-     SetProp(P_TRANSPARENT,"Vom Ruecken des Pferdes aus siehst Du:\n");
+DEFINIERT IN
+============
 
-     Diese Meldung ist natuerlich nur dann sinnvoll, wenn es sich
-     auch tatsaechlich um ein Pferd handelt :-)
+   /sys/container.h
 
-SIEHE AUCH:
-     int_long()
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   ist != 0, wenn in einen Container hinein (offen) oder aus einem
+   hinausgeschaut werden kann.
+
+   Schaut man aus einem hinaus, erhaelt der Spieler normalerweise die
+   Meldung 'Ausserhalb siehst Du:'. Diese kann jedoch durch eine eigene,
+   stimmigere  Meldung ersetzt werden, wenn in P_TRANSPARENT ein String
+   mit dieser Meldung angegeben wird.
+
+
+BEISPIEL
+========
+
+   SetProp(P_TRANSPARENT,1); -> normale Meldung
+
+   SetProp(P_TRANSPARENT,"Vom Ruecken des Pferdes aus siehst Du:\n");
+
+   Diese Meldung ist natuerlich nur dann sinnvoll, wenn es sich
+   auch tatsaechlich um ein Pferd handelt :-)
+
+
+SIEHE AUCH
+==========
+
+   int_long()
+
 Last modified: Mon Jul 18 24:00:00 2001 by Tilly
diff --git a/doc/props/P_TRAVEL_CMDS b/doc/props/P_TRAVEL_CMDS
index 32f6f65..3f9b0d5 100644
--- a/doc/props/P_TRAVEL_CMDS
+++ b/doc/props/P_TRAVEL_CMDS
@@ -1,38 +1,62 @@
-NAME:
-    P_TRAVEL_CMDS                   "travel_cmds"                   
 
-DEFINIERT IN:
-    /sys/transport.h
+P_TRAVEL_CMDS
+*************
 
-BESCHREIBUNG:
-    Ein Array mit Befehlen, die zum Verlassen UND Betreten des Trans-
-    porters fuehren. 
 
-BEISPIEL:
-    void create()
-    {
-      ::create();
+NAME
+====
 
-      SetProp(P_TRAVEL_CMDS,({ "steig","steige" }) );
+   P_TRAVEL_CMDS                   "travel_cmds"
 
-    }
 
-    Als Parameter werden hier ausschliesslich 'auf,in' und 'von,aus'
-    verarbeitet.
+DEFINIERT IN
+============
 
-    steige auf|in  <xxx>    fuehrt also zum Betreten des Transporters,
-    steige von|aus <xxx>    dagegen fuehrt zum Verlassen desselben.
+   /sys/transport.h
 
-BEMERKUNGEN:
-    Um /std/transport.c nicht aufzublaehen, werden weitere Parameter wie
-    etwa 'steige auf|in das|die|den xxx' _nicht_ unterstuetzt!
 
-    Hier muss der verantwortliche Magier schon eine eigene Loesung finden
-    und in seinen Transporter schreiben.
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-    P_LEAVEFAIL, P_ENTERFAIL, P_ENTERCMDS, P_LEAVECMDS, transporter,
+   Ein Array mit Befehlen, die zum Verlassen UND Betreten des Trans-
+   porters fuehren.
 
-LETZTER AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
-    
\ No newline at end of file
+
+BEISPIEL
+========
+
+   void create()
+   {
+     ::create();
+
+     SetProp(P_TRAVEL_CMDS,({ "steig","steige" }) );
+
+   }
+
+   Als Parameter werden hier ausschliesslich 'auf,in' und 'von,aus'
+   verarbeitet.
+
+   steige auf|in  <xxx>    fuehrt also zum Betreten des Transporters,
+   steige von|aus <xxx>    dagegen fuehrt zum Verlassen desselben.
+
+
+BEMERKUNGEN
+===========
+
+   Um /std/transport.c nicht aufzublaehen, werden weitere Parameter wie
+   etwa 'steige auf|in das|die|den xxx' _nicht_ unterstuetzt!
+
+   Hier muss der verantwortliche Magier schon eine eigene Loesung finden
+   und in seinen Transporter schreiben.
+
+
+SIEHE AUCH
+==========
+
+   P_LEAVEFAIL, P_ENTERFAIL, P_ENTERCMDS, P_LEAVECMDS, transporter,
+
+
+LETZTER AENDERUNG
+=================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_TRAVEL_INFO b/doc/props/P_TRAVEL_INFO
index b3a502e..720e9ec 100644
--- a/doc/props/P_TRAVEL_INFO
+++ b/doc/props/P_TRAVEL_INFO
@@ -1,31 +1,53 @@
-NAME:
-    P_TRAVEL_INFO                 "travel_info"
 
-DEFINIERT IN:
-    /sys/transport.h
+P_TRAVEL_INFO
+*************
 
-BESCHREIBUNG:
-    Array mit Informationen zur vom Spieler gewuenschten Reiseroute.
 
-    [0]        Der Raum (object), in dem die Reiseroute momentan 
-               'aktiv' ist. Nur hier wird sie beruecksichtigt.
+NAME
+====
 
-    [1]        Das gewuenschte Transportmittel (object) falls 
-               gewaehlt. Ansonsten 0.
+   P_TRAVEL_INFO                 "travel_info"
 
-    [2]        Der gewuenschte Zielort (string) oder 0 (ziellos).
 
-    [3]        Der gewuenschte Zielort als Richtung (string), falls
-               gewaehlt (z.B. 'zur Feuerinsel'). Sonst 0. Wird aus
-               P_HARBOUR des Zielraumes ausgelesen.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-    Diese Property wird von /std/transport.c sowie std/player/travel.c
-    verwendet, und sollte NICHT von anderen Objekten oder per Hand 
-    veraendert werden!
+   /sys/transport.h
 
-SIEHE AUCH:
-    /std/transport.c, /std/player/travel.c, reise
 
-LETZTER AENDERUNG:
-    Don, 24.01.2002, 10:15:07h von Tilly
+BESCHREIBUNG
+============
+
+   Array mit Informationen zur vom Spieler gewuenschten Reiseroute.
+
+   [0]        Der Raum (object), in dem die Reiseroute momentan
+              'aktiv' ist. Nur hier wird sie beruecksichtigt.
+
+   [1]        Das gewuenschte Transportmittel (object) falls
+              gewaehlt. Ansonsten 0.
+
+   [2]        Der gewuenschte Zielort (string) oder 0 (ziellos).
+
+   [3]        Der gewuenschte Zielort als Richtung (string), falls
+              gewaehlt (z.B. 'zur Feuerinsel'). Sonst 0. Wird aus
+              P_HARBOUR des Zielraumes ausgelesen.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property wird von /std/transport.c sowie std/player/travel.c
+   verwendet, und sollte NICHT von anderen Objekten oder per Hand
+   veraendert werden!
+
+
+SIEHE AUCH
+==========
+
+   /std/transport.c, /std/player/travel.c, reise
+
+
+LETZTER AENDERUNG
+=================
+
+   Don, 24.01.2002, 10:15:07h von Tilly
diff --git a/doc/props/P_TRAY b/doc/props/P_TRAY
index 34c9d90..0c394d4 100644
--- a/doc/props/P_TRAY
+++ b/doc/props/P_TRAY
@@ -1,8 +1,21 @@
-NAME:
-    P_TRAY                        "tray"                        
 
-DEFINIERT IN:
-    /sys/properties.h
+P_TRAY
+******
 
-BESCHREIBUNG:
-    *** KEINE BESCHREIBUNG VORHANDEN ***
+
+NAME
+====
+
+   P_TRAY                        "tray"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   *** KEINE BESCHREIBUNG VORHANDEN ***
diff --git a/doc/props/P_TTY b/doc/props/P_TTY
index 9e4aded..87841fd 100644
--- a/doc/props/P_TTY
+++ b/doc/props/P_TTY
@@ -1,28 +1,45 @@
-NAME:
-    P_TTY                         "tty"
 
-DEFINIERT IN:
-    /secure/telnetneg.h
+P_TTY
+*****
 
-BESCHREIBUNG:
-     Name der Terminalemulation, die der Spieler nutzt.
-     Es existieren bisher "dumb", "vt100" und "ansi".
 
-	
-ANMERKUNG:
-     Farben duerfen ausschliesslich bei P_TTY=="ansi" benutzt werden.
-     Bei nicht farbfaehigen Terminals koennen ANSI-Codes die gesamte
-     Ausgabe zerschiessen!
+NAME
+====
 
-     Die Attribute fett, unterstrichen, blinkend und invers koennen auch
-     schon von vt100-Terminals dargestellt werden. Aber nicht ueberall
-     sind alle Attribute/Farben implementiert.
+   P_TTY                         "tty"
 
-     Bei allen ANSI-Codes sind drei Sachen zu beachten:
-     
-        1) Sparsam benutzen! Aufgezwungene Hervorhebungen koennen
-	   Spieler ganz schnell nerven.
 
-	2) Nicht jeder benutzt dieselbe Hintergrundfarbe!
+DEFINIERT IN
+============
 
-	3) Sparsam benutzen! Beser noch: nur im Notfall!
+   /secure/telnetneg.h
+
+
+BESCHREIBUNG
+============
+
+   Name der Terminalemulation, die der Spieler nutzt.
+   Es existieren bisher "dumb", "vt100" und "ansi".
+
+
+ANMERKUNG
+=========
+
+   Farben duerfen ausschliesslich bei P_TTY=="ansi" benutzt werden.
+   Bei nicht farbfaehigen Terminals koennen ANSI-Codes die gesamte
+   Ausgabe zerschiessen!
+
+   Die Attribute fett, unterstrichen, blinkend und invers koennen auch
+   schon von vt100-Terminals dargestellt werden. Aber nicht ueberall
+   sind alle Attribute/Farben implementiert.
+
+   Bei allen ANSI-Codes sind drei Sachen zu beachten:
+
+
+
+      1) Sparsam benutzen! Aufgezwungene Hervorhebungen koennen
+         Spieler ganz schnell nerven.
+
+      2) Nicht jeder benutzt dieselbe Hintergrundfarbe!
+
+      3) Sparsam benutzen! Beser noch: nur im Notfall!
diff --git a/doc/props/P_TTY_COLS b/doc/props/P_TTY_COLS
index 1716a33..8780417 100644
--- a/doc/props/P_TTY_COLS
+++ b/doc/props/P_TTY_COLS
@@ -1,22 +1,40 @@
-NAME:
-    P_TTY_COLS                                  "tty_cols"
 
-DEFINIERT IN:
-    /secure/telnetneg.h
+P_TTY_COLS
+**********
 
-BESCHREIBUNG:
-    In dieser Properties steht die Anzahl der Spalten, die das 
-    Terminalfenster des Spielers derzeit hat.
 
-    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
-    Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
-    leer.
-    Das Setzen der Property aendert die Fenstergroesse des Spielers
-    natuerlich nicht.
+NAME
+====
 
-SIEHE AUCH:
-    P_TTY_ROWS, P_TTY_TYPE, P_TTY_SHOW
+   P_TTY_COLS                                  "tty_cols"
 
-LETZTE AeNDERUNG:
-    Sat, 06.02.1999, 14:00:00 von Paracelsus
 
+DEFINIERT IN
+============
+
+   /secure/telnetneg.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Properties steht die Anzahl der Spalten, die das
+   Terminalfenster des Spielers derzeit hat.
+
+   Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+   Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
+   leer.
+   Das Setzen der Property aendert die Fenstergroesse des Spielers
+   natuerlich nicht.
+
+
+SIEHE AUCH
+==========
+
+   P_TTY_ROWS, P_TTY_TYPE, P_TTY_SHOW
+
+
+LETZTE AeNDERUNG
+================
+
+   Sat, 06.02.1999, 14:00:00 von Paracelsus
diff --git a/doc/props/P_TTY_ROWS b/doc/props/P_TTY_ROWS
index 1294d9b..7289109 100644
--- a/doc/props/P_TTY_ROWS
+++ b/doc/props/P_TTY_ROWS
@@ -1,22 +1,40 @@
-NAME:
-    P_TTY_ROWS                                  "tty_rows"
 
-DEFINIERT IN:
-    /secure/telnetneg.h
+P_TTY_ROWS
+**********
 
-BESCHREIBUNG:
-    In dieser Properties steht die Anzahl der Zeilen, die das
-    Terminalfenster des Spielers derzeit hat.
 
-    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
-    Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
-    leer.
-    Das Setzen der Property aendert die Fenstergroesse des Spielers
-    natuerlich nicht.
+NAME
+====
 
-SIEHE AUCH:
-    P_TTY_COLS, P_TTY_TYPE, P_TTY_SHOW
+   P_TTY_ROWS                                  "tty_rows"
 
-LETZTE AeNDERUNG:
-    Sat, 06.02.1999, 14:00:00 von Paracelsus
 
+DEFINIERT IN
+============
+
+   /secure/telnetneg.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Properties steht die Anzahl der Zeilen, die das
+   Terminalfenster des Spielers derzeit hat.
+
+   Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+   Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
+   leer.
+   Das Setzen der Property aendert die Fenstergroesse des Spielers
+   natuerlich nicht.
+
+
+SIEHE AUCH
+==========
+
+   P_TTY_COLS, P_TTY_TYPE, P_TTY_SHOW
+
+
+LETZTE AeNDERUNG
+================
+
+   Sat, 06.02.1999, 14:00:00 von Paracelsus
diff --git a/doc/props/P_TTY_SHOW b/doc/props/P_TTY_SHOW
index f727433..a43076f 100644
--- a/doc/props/P_TTY_SHOW
+++ b/doc/props/P_TTY_SHOW
@@ -1,17 +1,35 @@
-NAME:
-    P_TTY_SHOW                                  "tty_show"
 
-DEFINIERT IN:
-    /secure/telnetneg.h
+P_TTY_SHOW
+**********
 
-BESCHREIBUNG:
-    Bei Telnets, die Telnetnegotiations unterstuetzen, wird eine Aenderung
-    der Fenstergroesse dem Spielerobjekt mitgeteilt. Steht in P_TTY_SHOW
-    ein Wert ungleich Null, wird dem Spieler diese Aenderung mitgeteilt.
 
-SIEHE AUCH:
-    P_TTY_ROWS, P_TTY_COLS, P_TTY_TYPE, telnegs
+NAME
+====
 
-LETZTE AeNDERUNG:
-    Sat, 06.02.1999, 14:00:00 von Paracelsus
+   P_TTY_SHOW                                  "tty_show"
 
+
+DEFINIERT IN
+============
+
+   /secure/telnetneg.h
+
+
+BESCHREIBUNG
+============
+
+   Bei Telnets, die Telnetnegotiations unterstuetzen, wird eine Aenderung
+   der Fenstergroesse dem Spielerobjekt mitgeteilt. Steht in P_TTY_SHOW
+   ein Wert ungleich Null, wird dem Spieler diese Aenderung mitgeteilt.
+
+
+SIEHE AUCH
+==========
+
+   P_TTY_ROWS, P_TTY_COLS, P_TTY_TYPE, telnegs
+
+
+LETZTE AeNDERUNG
+================
+
+   Sat, 06.02.1999, 14:00:00 von Paracelsus
diff --git a/doc/props/P_TTY_TYPE b/doc/props/P_TTY_TYPE
index 6935b23..5842cb2 100644
--- a/doc/props/P_TTY_TYPE
+++ b/doc/props/P_TTY_TYPE
@@ -1,23 +1,41 @@
-NAME:
-    P_TTY_TYPE                                  "tty_type"
 
-DEFINIERT IN:
-    /secure/telnetneg.h
+P_TTY_TYPE
+**********
 
-BESCHREIBUNG:
-    In dieser Properties steht der Terminaltyp, den ein Spieler lokal auf
-    seinem Rechner verwendet.
 
-    Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
-    Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
-    leer. Die meisten Telnets/Clients geben ihren Terminaltyp allerdings
-    nicht preis.
-    Das Setzen der Property aendert den Terminaltyp des Spielers
-    natuerlich nicht.
+NAME
+====
 
-SIEHE AUCH:
-    P_TTY_COLS, P_TTY_ROWS, P_TTY_SHOW
+   P_TTY_TYPE                                  "tty_type"
 
-LETZTE AeNDERUNG:
-    Sat, 06.02.1999, 14:00:00 von Paracelsus
 
+DEFINIERT IN
+============
+
+   /secure/telnetneg.h
+
+
+BESCHREIBUNG
+============
+
+   In dieser Properties steht der Terminaltyp, den ein Spieler lokal auf
+   seinem Rechner verwendet.
+
+   Voraussetzung hierfuer ist allerdings, dass das Telnet des Spielers
+   Telnetnegotiations unterstuetzt, ansonsten bleibt diese Property
+   leer. Die meisten Telnets/Clients geben ihren Terminaltyp allerdings
+   nicht preis.
+   Das Setzen der Property aendert den Terminaltyp des Spielers
+   natuerlich nicht.
+
+
+SIEHE AUCH
+==========
+
+   P_TTY_COLS, P_TTY_ROWS, P_TTY_SHOW
+
+
+LETZTE AeNDERUNG
+================
+
+   Sat, 06.02.1999, 14:00:00 von Paracelsus
diff --git a/doc/props/P_UNIT_DECAY_FLAGS b/doc/props/P_UNIT_DECAY_FLAGS
index f924ff7..25a5ed1 100644
--- a/doc/props/P_UNIT_DECAY_FLAGS
+++ b/doc/props/P_UNIT_DECAY_FLAGS
@@ -1,70 +1,90 @@
+
 P_UNIT_DECAY_FLAGS
+******************
 
-NAME:
-     P_UNIT_DECAY_FLAGS					"unit_decay_flags"
 
-DEFINIERT IN:
-     /sys/unit.h
+NAME
+====
 
-BESCHREIBUNG:
-     Mit dieser Prop kann das Zerfallsverhalten gesteuert werden, entweder
-     fuer alle Clones durch Setzen in der Blueprint oder fuer einzelne Clones.
+   P_UNIT_DECAY_FLAGS                                 "unit_decay_flags"
 
-     In dieser Prop koennen momentan 4 Flags gesetzt werden:
-     - NO_DECAY: 
-          Zerfall ist abgeschaltet.
-     - NO_DECAY_UNTIL_MOVE: 
-          Der Zerfall ist solange ausgesetzt, bis dieses Objekt in ein anderes
-          Env bewegt wird. Setzt also ein NPC beim AddItem() diese Prop,
-          zerfaellt seine Unit nicht, bis sie bewegt wurde (Leiche, Spieler
-          etc.). Hierbei zaehlt das move() nicht, wenn das Objekt noch kein
-          Env hatte, es zaehlen nur Moves von einem Env in ein anderes Env.
-          Dieses Flag sollte nur in Clones gesetzt werden.
-     - INACCURATE_DECAY
-          Sollen z.b. 45.34 Einheiten zerfallen, wird der Rest von 0.34
-          normalerweise als Wahrscheinlichkeit aufgefasst, dass eine
-          zusaetzliche Einheit zerfaellt. Dieses Flag sorgt dafuer, dass
-          dieser Rest weggeworfen wird und einfach 45 Einheiten zerfallen.
-          Gleichzeitig wird bei diesem Flag aber _immer min_ 1 Einheit
-          zerstoert!
-     - ABSOLUTE_DECAY
-          P_UNIT_DECAY_QUOTA wird nicht als prozentualer Anteil aufgefasst,
-          sondern als absolute Zahl, d.h. es zerfallen immer einfach
-          P_UNIT_DECAY_QUOTA Einheiten.
 
-     Diese Flags koennen z.B. genutzt werden, den Zerfall fuer einzelne
-     Objekte temporaer oder dauerhaft abzuschalten, auch wenn alle anderen
-     Clones weiterzerfallen.
+DEFINIERT IN
+============
 
-     Diese Prop kann in der Blueprint gesetzt werden. In diesem Fall wird
-     allerdings NO_DECAY_UNTIL_MOVE ignoriert, weil die BP ja nie bewegt
-     wuerde. NO_DECAY in der BP schaltet den Zerfallsprozess (temporaer) fuer
-     alle Clones aus. Ist nie ein Zerfall gewuenscht, sollte in der Blueprint
-     aber besser P_UNIT_DECAY_INTERVAL auf 0 gesetzt werden!
+   /sys/unit.h
 
-     Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
-     liefert ein klon->QueryProp(P_UNIT_DECAY_FLAGS) den in der Blueprint
-     eingestellten Wert zurueck.
-     
-BEMERKUNGEN:
-     * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus der
-       Blueprint zurueckgeben. Hierbei wird allerdings ein NO_DECAY_UNTIL_MOVE
-       ausgefiltert, da dies den Zerfall fuer alle Objekte dauerhaft stoppen
-       wuerde, weil BPs nicht bewegt werden.
-     * Die Flags koennen "verodert" werden:
-       SetProp(P_UNIT_DECAY_FLAGS, NO_DECAY_UNTIL_MOVE | ABSOLUTE_DECAY);
 
-BEISPIEL:
-     // Dieser NPC hat tolle Pfeile, die sollen aber nicht zerfallen, solange
-     // sie im Inventar des NPCs sind:
-     AddItem("/d/tolleregion/tollermagier/obj/pfeile", REFRESH_NONE,
-         ([ P_AMOUNT: 50+random(50),
-            P_UNIT_DECAY_FLAGS: NO_DECAY_UNTIL_MOVE ]) );
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-     unit
-     P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_QUOTA, P_UNIT_DECAY_MIN
-     DoDecay, DoDecayMessage
-     /std/unit.c
+   Mit dieser Prop kann das Zerfallsverhalten gesteuert werden, entweder
+   fuer alle Clones durch Setzen in der Blueprint oder fuer einzelne Clones.
+
+   In dieser Prop koennen momentan 4 Flags gesetzt werden:
+   - NO_DECAY:
+        Zerfall ist abgeschaltet.
+   - NO_DECAY_UNTIL_MOVE:
+        Der Zerfall ist solange ausgesetzt, bis dieses Objekt in ein anderes
+        Env bewegt wird. Setzt also ein NPC beim AddItem() diese Prop,
+        zerfaellt seine Unit nicht, bis sie bewegt wurde (Leiche, Spieler
+        etc.). Hierbei zaehlt das move() nicht, wenn das Objekt noch kein
+        Env hatte, es zaehlen nur Moves von einem Env in ein anderes Env.
+        Dieses Flag sollte nur in Clones gesetzt werden.
+   - INACCURATE_DECAY
+        Sollen z.b. 45.34 Einheiten zerfallen, wird der Rest von 0.34
+        normalerweise als Wahrscheinlichkeit aufgefasst, dass eine
+        zusaetzliche Einheit zerfaellt. Dieses Flag sorgt dafuer, dass
+        dieser Rest weggeworfen wird und einfach 45 Einheiten zerfallen.
+        Gleichzeitig wird bei diesem Flag aber _immer min_ 1 Einheit
+        zerstoert!
+   - ABSOLUTE_DECAY
+        P_UNIT_DECAY_QUOTA wird nicht als prozentualer Anteil aufgefasst,
+        sondern als absolute Zahl, d.h. es zerfallen immer einfach
+        P_UNIT_DECAY_QUOTA Einheiten.
+
+   Diese Flags koennen z.B. genutzt werden, den Zerfall fuer einzelne
+   Objekte temporaer oder dauerhaft abzuschalten, auch wenn alle anderen
+   Clones weiterzerfallen.
+
+   Diese Prop kann in der Blueprint gesetzt werden. In diesem Fall wird
+   allerdings NO_DECAY_UNTIL_MOVE ignoriert, weil die BP ja nie bewegt
+   wuerde. NO_DECAY in der BP schaltet den Zerfallsprozess (temporaer) fuer
+   alle Clones aus. Ist nie ein Zerfall gewuenscht, sollte in der Blueprint
+   aber besser P_UNIT_DECAY_INTERVAL auf 0 gesetzt werden!
+
+   Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
+   liefert ein klon->QueryProp(P_UNIT_DECAY_FLAGS) den in der Blueprint
+   eingestellten Wert zurueck.
+
+
+BEMERKUNGEN
+===========
+
+   * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus der
+     Blueprint zurueckgeben. Hierbei wird allerdings ein NO_DECAY_UNTIL_MOVE
+     ausgefiltert, da dies den Zerfall fuer alle Objekte dauerhaft stoppen
+     wuerde, weil BPs nicht bewegt werden.
+   * Die Flags koennen "verodert" werden:
+     SetProp(P_UNIT_DECAY_FLAGS, NO_DECAY_UNTIL_MOVE | ABSOLUTE_DECAY);
+
+
+BEISPIEL
+========
+
+   // Dieser NPC hat tolle Pfeile, die sollen aber nicht zerfallen, solange
+   // sie im Inventar des NPCs sind:
+   AddItem("/d/tolleregion/tollermagier/obj/pfeile", REFRESH_NONE,
+       ([ P_AMOUNT: 50+random(50),
+          P_UNIT_DECAY_FLAGS: NO_DECAY_UNTIL_MOVE ]) );
+
+
+SIEHE AUCH
+==========
+
+   unit
+   P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_QUOTA, P_UNIT_DECAY_MIN
+   DoDecay, DoDecayMessage
+   /std/unit.c
 
 14.10.2007, Zesstra
diff --git a/doc/props/P_UNIT_DECAY_INTERVAL b/doc/props/P_UNIT_DECAY_INTERVAL
index 93154cd..e0118c3 100644
--- a/doc/props/P_UNIT_DECAY_INTERVAL
+++ b/doc/props/P_UNIT_DECAY_INTERVAL
@@ -1,37 +1,56 @@
+
 P_UNIT_DECAY_INTERVAL
+*********************
 
-NAME:
-     P_UNIT_DECAY_INTERVAL					"unit_decay_interval"
 
-DEFINIERT IN:
-     /sys/unit.h
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Prop bestimmt, wie oft ein Zerfall der entsprechenden Unitobjekte
-     durchgefuehrt wird. Das Intervall ist in Sekunden anzugeben (int).
-     Die Prop muss in der Blueprint der entsprechenden Unitobjekte gesetzt
-     werden, in Clones kann sie nicht gesetzt werden.
-     Die Blueprint resettet dann in diesem Intervall und ruft in allen ihren
-     Clones (und denen alter Versionen der gleichen BP!) DoDecay() auf,
-     woraufhin die Clones den Zerfall durchfuehren.
-     Ist die Prop in der Blueprint nicht gesetzt, erfolgt kein Zerfall.
+   P_UNIT_DECAY_INTERVAL                                      "unit_decay_interval"
 
-BEMERKUNGEN:
-     * Ist die Blueprint nicht geladen, erfolgt kein Zerfall der Clones.
-     * Ein Setzen dieser Prop beinhaltet immer auch einen Aufruf von
-       set_next_reset() auf das ensprechende Intervall.
-     * Die Prop kann in den Clones abgefragt werden und liefert das in der
-       Blueprint eingestellte Intervall.
-     * Von einer Manipulation per Set() wird dringend abgeraten.
-     * Die Prop kann nur vom Objekt selber, vom Programmierer des Objekts, vom
-       RM der entsprechenden Region, von einem Weisen oder von einem Objekt
-       gesetzt werden, welches die gleiche UID hat.
 
-BEISPIEL:
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     unit
-     P_UNIT_DECAY_QUOTA, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_MIN
-     DoDecay(), DoDecayMessage()
+   /sys/unit.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Prop bestimmt, wie oft ein Zerfall der entsprechenden Unitobjekte
+   durchgefuehrt wird. Das Intervall ist in Sekunden anzugeben (int).
+   Die Prop muss in der Blueprint der entsprechenden Unitobjekte gesetzt
+   werden, in Clones kann sie nicht gesetzt werden.
+   Die Blueprint resettet dann in diesem Intervall und ruft in allen ihren
+   Clones (und denen alter Versionen der gleichen BP!) DoDecay() auf,
+   woraufhin die Clones den Zerfall durchfuehren.
+   Ist die Prop in der Blueprint nicht gesetzt, erfolgt kein Zerfall.
+
+
+BEMERKUNGEN
+===========
+
+   * Ist die Blueprint nicht geladen, erfolgt kein Zerfall der Clones.
+   * Ein Setzen dieser Prop beinhaltet immer auch einen Aufruf von
+     set_next_reset() auf das ensprechende Intervall.
+   * Die Prop kann in den Clones abgefragt werden und liefert das in der
+     Blueprint eingestellte Intervall.
+   * Von einer Manipulation per Set() wird dringend abgeraten.
+   * Die Prop kann nur vom Objekt selber, vom Programmierer des Objekts, vom
+     RM der entsprechenden Region, von einem Weisen oder von einem Objekt
+     gesetzt werden, welches die gleiche UID hat.
+
+
+BEISPIEL
+========
+
+
+SIEHE AUCH
+==========
+
+   unit
+   P_UNIT_DECAY_QUOTA, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_MIN
+   DoDecay(), DoDecayMessage()
 
 13.10.2007, Zesstra
diff --git a/doc/props/P_UNIT_DECAY_MIN b/doc/props/P_UNIT_DECAY_MIN
index 79f9c80..b78a735 100644
--- a/doc/props/P_UNIT_DECAY_MIN
+++ b/doc/props/P_UNIT_DECAY_MIN
@@ -1,51 +1,71 @@
+
 P_UNIT_DECAY_MIN
+****************
 
-NAME:
-     P_UNIT_DECAY_MIN					                    "unit_decay_min"
 
-DEFINIERT IN:
-     /sys/unit.h
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Prop bestimmt, wieviele Einheiten der Unitobjekten mindestens
-     uebrig bleiben sollen. 
-     Faellt die Menge eines Unitobjekts unter diesen Wert, zerfaellt diese
-     Unit solange nicht weiter, bis der Wert wieder ueberschritten wird.
-     Die Prop kann in der Blueprint und in den einzelnen Clones gesetzt
-     werden.
-     Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
-     liefert ein QueryProp(P_UNIT_DECAY_MIN) den in der Blueprint
-     eingestellten Wert zurueck und die Unit zerfaellt bis zu dieser
-     Mindestmenge..
-     D.h. man sollte diese Prop in der Blueprint setzen und in einzelnen
-     Clones nur soweit diese abweichende Werte haben sollen.
-     Es sind nur Werte zwischen 0 und 100 zulaessig. Auf diese Art laesst sich
-     die minidestens uebrig bleibende Menge aller Clones durch Aendern einer
-     Prop in der Blueprint aendern.
+   P_UNIT_DECAY_MIN                                                       "unit_decay_min"
 
-BEMERKUNGEN:
-     * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus er
-       Blueprint zum Zerfall benutzt.
-     * Will man fuer ein bestimmtes Unitobjekt kein Minimum haben, also dass
-       dieses Objekt zerfaellt, bis nichts mehr da ist, die Blueprint hat aber
-       einen Minimalwert gesetzt, sollte diese Prop im betreffenden Objekt auf
-       -1 gesetzt werden.
-     * Diese Prop sollte vorsichtig angewandt werden, da Spieler so den
-       Zerfall von Units stoppen koennen, indem sie die Units entsprechend
-       aufteilen, so dass jedes Einzelobjekt unter dem Minimum liegt.
 
-BEISPIEL:
-     // es soll min. 1 Einheit uebrig bleiben.
-     SetProp(P_UNIT_DECAY_MIN, 1);
+DEFINIERT IN
+============
 
-     // die Blueprint hat ein Minimum von 10 gesetzt, dieser Clone soll
-     // aber zerfallen, bis nix mehr da ist.
-     klon->SetProp(P_UNIT_DECAY_MIN, -1);
+   /sys/unit.h
 
-SIEHE AUCH:
-     unit
-     P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_QUOTA
-     DoDecay, DoDecayMessage
-     /std/unit.c
+
+BESCHREIBUNG
+============
+
+   Diese Prop bestimmt, wieviele Einheiten der Unitobjekten mindestens
+   uebrig bleiben sollen.
+   Faellt die Menge eines Unitobjekts unter diesen Wert, zerfaellt diese
+   Unit solange nicht weiter, bis der Wert wieder ueberschritten wird.
+   Die Prop kann in der Blueprint und in den einzelnen Clones gesetzt
+   werden.
+   Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
+   liefert ein QueryProp(P_UNIT_DECAY_MIN) den in der Blueprint
+   eingestellten Wert zurueck und die Unit zerfaellt bis zu dieser
+   Mindestmenge..
+   D.h. man sollte diese Prop in der Blueprint setzen und in einzelnen
+   Clones nur soweit diese abweichende Werte haben sollen.
+   Es sind nur Werte zwischen 0 und 100 zulaessig. Auf diese Art laesst sich
+   die minidestens uebrig bleibende Menge aller Clones durch Aendern einer
+   Prop in der Blueprint aendern.
+
+
+BEMERKUNGEN
+===========
+
+   * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus er
+     Blueprint zum Zerfall benutzt.
+   * Will man fuer ein bestimmtes Unitobjekt kein Minimum haben, also dass
+     dieses Objekt zerfaellt, bis nichts mehr da ist, die Blueprint hat aber
+     einen Minimalwert gesetzt, sollte diese Prop im betreffenden Objekt auf
+     -1 gesetzt werden.
+   * Diese Prop sollte vorsichtig angewandt werden, da Spieler so den
+     Zerfall von Units stoppen koennen, indem sie die Units entsprechend
+     aufteilen, so dass jedes Einzelobjekt unter dem Minimum liegt.
+
+
+BEISPIEL
+========
+
+   // es soll min. 1 Einheit uebrig bleiben.
+   SetProp(P_UNIT_DECAY_MIN, 1);
+
+   // die Blueprint hat ein Minimum von 10 gesetzt, dieser Clone soll
+   // aber zerfallen, bis nix mehr da ist.
+   klon->SetProp(P_UNIT_DECAY_MIN, -1);
+
+
+SIEHE AUCH
+==========
+
+   unit
+   P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_QUOTA
+   DoDecay, DoDecayMessage
+   /std/unit.c
 
 14.10.2007, Zesstra
diff --git a/doc/props/P_UNIT_DECAY_QUOTA b/doc/props/P_UNIT_DECAY_QUOTA
index 9144564..0b4c9a6 100644
--- a/doc/props/P_UNIT_DECAY_QUOTA
+++ b/doc/props/P_UNIT_DECAY_QUOTA
@@ -1,45 +1,69 @@
+
+P_UNIT_DECAY_QUOTA
+******************
+
+
 P_UNIT_DECAY_QUOTA (int)
+========================
 
-NAME:
-     P_UNIT_DECAY_QUOTA					"unit_decay_quota"
 
-DEFINIERT IN:
-     /sys/unit.h
+NAME
+====
 
-BESCHREIBUNG:
-     Diese Prop bestimmt, welcher Anteil der einzelnen Unitobjekte pro Zerfall
-     zerstoert wird. Dieser Anteil wird als ganze Zahl zwischen 0 und 10000
-     ausgedrueckt. 1 entspricht einem Zerfall von 0.01%, 10000 entspricht
-     100%.
-     Momentan sind keine Werte < 0 zulaessig, die einem Zuwachs entsprechend
-     wurden.
+   P_UNIT_DECAY_QUOTA                                 "unit_decay_quota"
 
-     Falls das Flag ABSOLUTE_DECAY (s. P_UNIT_DECAY_FLAGS) gesetzt ist, steht
-     die Zahl in dieser Prop fuer die absolute Anzahl an zu zerstoerenden
-     Einheiten.
 
-     Die Prop kann in der Blueprint und in den einzelnen Clones gesetzt
-     werden.
-     Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
-     liefert ein QueryProp(P_UNIT_DECAY_QUOTA) den in der Blueprint
-     eingestellten Wert zurueck und die Unit zerfaellt zu diesem Anteil.
-     D.h. man sollte diese Prop in der Blueprint setzen und in einzelnen
-     Clones nur soweit diese abweichende Zerfallsraten haben sollen.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus er
-       Blueprint zum Zerfall benutzt.
-     * Will man den Zerfall fuer ein bestimmtes Unitobjekt abschalten, sollte
-       man P_UNIT_DECAY_FLAGS benutzen.
+   /sys/unit.h
 
-BEISPIEL:
-     // pro Zerfallsintervall sollen 12% zerfallen.
-     SetProp(P_UNIT_DECAY_QUOTA, 1200);
 
-SIEHE AUCH:
-     unit
-     P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_MIN
-     DoDecay, DoDecayMessage
-     /std/unit.c
+BESCHREIBUNG
+============
+
+   Diese Prop bestimmt, welcher Anteil der einzelnen Unitobjekte pro Zerfall
+   zerstoert wird. Dieser Anteil wird als ganze Zahl zwischen 0 und 10000
+   ausgedrueckt. 1 entspricht einem Zerfall von 0.01%, 10000 entspricht
+   100%.
+   Momentan sind keine Werte < 0 zulaessig, die einem Zuwachs entsprechend
+   wurden.
+
+   Falls das Flag ABSOLUTE_DECAY (s. P_UNIT_DECAY_FLAGS) gesetzt ist, steht
+   die Zahl in dieser Prop fuer die absolute Anzahl an zu zerstoerenden
+   Einheiten.
+
+   Die Prop kann in der Blueprint und in den einzelnen Clones gesetzt
+   werden.
+   Ist die Prop in einem einzelnen Clone nicht explizit gesetzt,
+   liefert ein QueryProp(P_UNIT_DECAY_QUOTA) den in der Blueprint
+   eingestellten Wert zurueck und die Unit zerfaellt zu diesem Anteil.
+   D.h. man sollte diese Prop in der Blueprint setzen und in einzelnen
+   Clones nur soweit diese abweichende Zerfallsraten haben sollen.
+
+
+BEMERKUNGEN
+===========
+
+   * Setzt man diese Prop in einem Clone auf 0, wird der Wert aus er
+     Blueprint zum Zerfall benutzt.
+   * Will man den Zerfall fuer ein bestimmtes Unitobjekt abschalten, sollte
+     man P_UNIT_DECAY_FLAGS benutzen.
+
+
+BEISPIEL
+========
+
+   // pro Zerfallsintervall sollen 12% zerfallen.
+   SetProp(P_UNIT_DECAY_QUOTA, 1200);
+
+
+SIEHE AUCH
+==========
+
+   unit
+   P_UNIT_DECAY_INTERVAL, P_UNIT_DECAY_FLAGS, P_UNIT_DECAY_MIN
+   DoDecay, DoDecayMessage
+   /std/unit.c
 
 14.03.2008, Zesstra
diff --git a/doc/props/P_UNWEAR_MSG b/doc/props/P_UNWEAR_MSG
index 1ee0d80..0b2e89a 100644
--- a/doc/props/P_UNWEAR_MSG
+++ b/doc/props/P_UNWEAR_MSG
@@ -1,56 +1,78 @@
+
 P_UNWEAR_MSG
-NAME:
-     P_UNWEAR_MSG                       "unwear_msg"     
+************
 
-DEFINIERT IN:
-     /sys/armour.h
 
-BESCHREIBUNG:
-     Zweiteiliges Array mit Meldungen, die beim Ausziehen einer Ruestung 
-     oder Kleidung an den Spieler und die Umgebung ausgegeben werden.
-     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
-     Umgebung. Zeilenumbrueche werden automatisch gemacht, existierende
-     jedoch beruecksichtigt.
+NAME
+====
 
-     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
-     man replace_personal()).
+   P_UNWEAR_MSG                       "unwear_msg"
 
-     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
-      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
-      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
-      den Waffennamen.]
 
-BEISPIELE:
-    SetProp(P_NAME, "Mantel");
-    SetProp(P_UNWEAR_MSG,
-     ({"Du reisst Dir @WEN2 vom Leib.",
-       "@WER1 reisst sich @WENU2 vom Leib." }));
+DEFINIERT IN
+============
 
-    -> beim Ausziehen durch Urk:
-       Urk bekommt: Du reisst dir den Mantel vom Leib.
-       Der Raum:    Urk reisst sich einen Mantel vom Leib.
+   /sys/armour.h
 
-    SetProp(P_UNWEAR_MSG,
-     ({"Dir wird furchtbar warm. So eine Hitze aber auch. Schnell "
-       "schluepfst Du aus Deiner dicken Ruestung. Aaaah, was fuer "
-       "eine Wohltat.",
-       "@WEM1 scheint ploetzlich warm zu werden. Schnell schluepft "
-       "@WERQP1 aus @WEMQPPFS1 dicken Ruestung. Du hoffst instaendig, "
-       "das es noch etwas waermer wird ... "}));
 
-    -> beim Ausziehen durch Urk:
-       Urk bekommt: Dir wird furchtbar warm. So eine Hitze aber auch.
-		    Schnell schluepfst Du aus Deiner dicken Ruestung.
-		    Aaaah, was fuer eine Wohltat.
-       Der Raum:    Urk scheint ploetzlich warm zu werden. Schnell
-		    schluepft er aus seiner dicken Ruestung. Du hoffst
-		    instaendig, das es noch etwas waermer wird ...
-SIEHE AUCH:
-     Aehnliches: P_WEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
-                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
-     Funktionen: WearFunc, UnwearFunc
-     Sonstiges:  replace_personal(E), /std/armour/wear.c, armours
-                 clothing, /std/clothing.wear.c
+BESCHREIBUNG
+============
 
-LETZTE AeNDERUNG:
-15.02.2009, Zesstra
\ No newline at end of file
+   Zweiteiliges Array mit Meldungen, die beim Ausziehen einer Ruestung
+   oder Kleidung an den Spieler und die Umgebung ausgegeben werden.
+   Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+   Umgebung. Zeilenumbrueche werden automatisch gemacht, existierende
+   jedoch beruecksichtigt.
+
+   Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+   man replace_personal()).
+
+   [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+    moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+    in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+    den Waffennamen.]
+
+
+BEISPIELE
+=========
+
+   SetProp(P_NAME, "Mantel");
+   SetProp(P_UNWEAR_MSG,
+    ({"Du reisst Dir @WEN2 vom Leib.",
+      "@WER1 reisst sich @WENU2 vom Leib." }));
+
+   -> beim Ausziehen durch Urk:
+      Urk bekommt: Du reisst dir den Mantel vom Leib.
+      Der Raum:    Urk reisst sich einen Mantel vom Leib.
+
+   SetProp(P_UNWEAR_MSG,
+    ({"Dir wird furchtbar warm. So eine Hitze aber auch. Schnell "
+      "schluepfst Du aus Deiner dicken Ruestung. Aaaah, was fuer "
+      "eine Wohltat.",
+      "@WEM1 scheint ploetzlich warm zu werden. Schnell schluepft "
+      "@WERQP1 aus @WEMQPPFS1 dicken Ruestung. Du hoffst instaendig, "
+      "das es noch etwas waermer wird ... "}));
+
+   -> beim Ausziehen durch Urk:
+      Urk bekommt: Dir wird furchtbar warm. So eine Hitze aber auch.
+                   Schnell schluepfst Du aus Deiner dicken Ruestung.
+                   Aaaah, was fuer eine Wohltat.
+      Der Raum:    Urk scheint ploetzlich warm zu werden. Schnell
+                   schluepft er aus seiner dicken Ruestung. Du hoffst
+                   instaendig, das es noch etwas waermer wird ...
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_WEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
+               P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+   Funktionen: WearFunc, UnwearFunc
+   Sonstiges:  replace_personal(E), /std/armour/wear.c, armours
+               clothing, /std/clothing.wear.c
+
+
+LETZTE AeNDERUNG
+================
+
+15.02.2009, Zesstra
diff --git a/doc/props/P_UNWIELD_FUNC b/doc/props/P_UNWIELD_FUNC
index da0fa7c..4466ec0 100644
--- a/doc/props/P_UNWIELD_FUNC
+++ b/doc/props/P_UNWIELD_FUNC
@@ -1,19 +1,32 @@
+
 P_UNWIELD_FUNC
+**************
 
-NAME:
-     P_UNWIELD_FUNC "unwield_func"
 
-DEFINIERT IN:
-     <weapon.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Falls ein Objekt eine UnwieldFunc() fuer die Waffe definiert, so muss
-     dieses Objekt in dieser Property eingetragen werden.
+   P_UNWIELD_FUNC "unwield_func"
 
-     Die Auswertung dieser Property erfolgt in DoUnwield().
 
-SIEHE AUCH:
-     /std/weapon.c, UnwieldFunc()
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <weapon.h>
+
+
+BESCHREIBUNG
+============
+
+   Falls ein Objekt eine UnwieldFunc() fuer die Waffe definiert, so muss
+   dieses Objekt in dieser Property eingetragen werden.
+
+   Die Auswertung dieser Property erfolgt in DoUnwield().
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon.c, UnwieldFunc()
+
 Last modified: Sun May 19 15:44:08 1996 by Wargon
diff --git a/doc/props/P_UNWIELD_MSG b/doc/props/P_UNWIELD_MSG
index 49a6466..d1d1668 100644
--- a/doc/props/P_UNWIELD_MSG
+++ b/doc/props/P_UNWIELD_MSG
@@ -1,59 +1,77 @@
+
 P_UNWIELD_MSG
-NAME:
-     P_UNWIELD_MSG                       "unwield_msg"                       
+*************
 
-DEFINIERT IN:
-     /sys/weapon.h
 
-BESCHREIBUNG:
-     Zweiteiliges Array mit Meldungen, die beim Wegstecken einer 
-     Waffe an den Spieler und die Umgebung ausgegeben werden.
+NAME
+====
 
-     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
-     Umgebung.  Zeilenumbrueche werden automatisch gemacht, existierende
-     jedoch beruecksichtigt.
+   P_UNWIELD_MSG                       "unwield_msg"
 
-     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
-     man replace_personal()).
 
-     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
-      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
-      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
-      den Waffennamen.]
+DEFINIERT IN
+============
 
-BEISPIELE:
-    SetProp(P_NAME, "Streitkolben");
-    SetProp(P_UNWIELD_MSG,
-     ({ "Du steckst @WEN2 zurueck und atmest erstmal tief durch.", 
-        "@WER1 steckt @WENU2 zurueck und atmet erstmal tief durch." }));
+   /sys/weapon.h
 
-    -> beim Wegstecken durch Urk:
-       Urk bekommt: Du steckst den Streitkolben zurueck und atmest erstmal
-		    tief durch.
-       Der Raum:    Urk steckt einen Streitkolben zurueck und atmet erstmal
-		    tief durch.
 
-    SetProp(P_UNWIELD_MSG,
-     ({"Du steckst die schwere Keule zurueck. Zufaellig landet sie "
-       "dabei auf Deinem Fuss. Laut schreiend humpelst Du in der "
-       "Gegend herum.",
-       "@WER1 steckt eine schwere Keule zurueck. Dummerweise landet diese "
-       "direkt auf dem eigenen Fuss. Aua, das tat sicher weh ... nicht "
-       "umsonst humpelt @WERQP1 jetzt schreiend durch die Gegend."}));
+BESCHREIBUNG
+============
 
-    -> beim Wegstecken durch Urk:
-       Urk bekommt: Du steckst die schwere Keule zurueck. Zufaellig landet
-		    sie dabei auf Deinem Fuss. Laut schreiend humpelst Du in
-		    der Gegend herum.
-       Der Raum:    Urk steckt eine schwere Keule zurueck. Dummerweise
-		    landet diese direkt auf dem eigenen Fuss. Aua, das tat
-                    sicher weh ... nicht umsonst humpelt er jetzt schreiend
-                    durch die Gegend.
+   Zweiteiliges Array mit Meldungen, die beim Wegstecken einer
+   Waffe an den Spieler und die Umgebung ausgegeben werden.
 
-SIEHE AUCH:
-     Aehnliches: P_WIELD_MSG, P_WEAR_MSG, P_UNWEAR_MSG
-                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
-     Funktionen: UnwieldFunc, WieldFunc
-     Sonstiges:  replace_personal(E), /std/weapon/combat.c
+   Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+   Umgebung.  Zeilenumbrueche werden automatisch gemacht, existierende
+   jedoch beruecksichtigt.
+
+   Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+   man replace_personal()).
+
+   [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+    moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+    in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+    den Waffennamen.]
+
+
+BEISPIELE
+=========
+
+   SetProp(P_NAME, "Streitkolben");
+   SetProp(P_UNWIELD_MSG,
+    ({ "Du steckst @WEN2 zurueck und atmest erstmal tief durch.",
+       "@WER1 steckt @WENU2 zurueck und atmet erstmal tief durch." }));
+
+   -> beim Wegstecken durch Urk:
+      Urk bekommt: Du steckst den Streitkolben zurueck und atmest erstmal
+                   tief durch.
+      Der Raum:    Urk steckt einen Streitkolben zurueck und atmet erstmal
+                   tief durch.
+
+   SetProp(P_UNWIELD_MSG,
+    ({"Du steckst die schwere Keule zurueck. Zufaellig landet sie "
+      "dabei auf Deinem Fuss. Laut schreiend humpelst Du in der "
+      "Gegend herum.",
+      "@WER1 steckt eine schwere Keule zurueck. Dummerweise landet diese "
+      "direkt auf dem eigenen Fuss. Aua, das tat sicher weh ... nicht "
+      "umsonst humpelt @WERQP1 jetzt schreiend durch die Gegend."}));
+
+   -> beim Wegstecken durch Urk:
+      Urk bekommt: Du steckst die schwere Keule zurueck. Zufaellig landet
+                   sie dabei auf Deinem Fuss. Laut schreiend humpelst Du in
+                   der Gegend herum.
+      Der Raum:    Urk steckt eine schwere Keule zurueck. Dummerweise
+                   landet diese direkt auf dem eigenen Fuss. Aua, das tat
+                   sicher weh ... nicht umsonst humpelt er jetzt schreiend
+                   durch die Gegend.
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_WIELD_MSG, P_WEAR_MSG, P_UNWEAR_MSG
+               P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+   Funktionen: UnwieldFunc, WieldFunc
+   Sonstiges:  replace_personal(E), /std/weapon/combat.c
 
 29. Maerz 2004 Gloinson
diff --git a/doc/props/P_UNWIELD_TIME b/doc/props/P_UNWIELD_TIME
index 43128d4..e93a24b 100644
--- a/doc/props/P_UNWIELD_TIME
+++ b/doc/props/P_UNWIELD_TIME
@@ -1,19 +1,33 @@
+
 P_UNWIELD_TIME
+**************
 
-NAME:
-      P_UNWIELD_TIME			"unwield_time"
 
-DEFINIERT IN:
-      /sys/weapon.h
+NAME
+====
 
-BESCHREIBUNG:
-      Enthaelt den Zeitpunkt zu dem ein Living eine Waffe weggesteckt hat und
-      ist im Living gesetzt.
+   P_UNWIELD_TIME                    "unwield_time"
 
-SIEHE AUCH:
-      Verwandt:		P_WEAPON, P_WIELDED, DoUnwield()
-			P_LAST_USE
-      Sonstiges:	P_EQUIP_TIME
-			time()
 
-10.Feb 2005 Gloinson
+DEFINIERT IN
+============
+
+   /sys/weapon.h
+
+
+BESCHREIBUNG
+============
+
+   Enthaelt den Zeitpunkt zu dem ein Living eine Waffe weggesteckt hat und
+   ist im Living gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:         P_WEAPON, P_WIELDED, DoUnwield()
+                     P_LAST_USE
+   Sonstiges:        P_EQUIP_TIME
+                     time()
+
+10.Feb 2005 Gloinson
diff --git a/doc/props/P_USED_HANDS b/doc/props/P_USED_HANDS
index 456d32c..b90bd61 100644
--- a/doc/props/P_USED_HANDS
+++ b/doc/props/P_USED_HANDS
@@ -1,21 +1,39 @@
+
 P_USED_HANDS
-NAME:
-    P_USED_HANDS                  "used_hands"
+************
 
-DEFINIERT IN:
-    /sys/living/combat.h
 
-BESCHREIBUNG:
-    Anzahl der Haende in Benutzung.
-    Effektiv nur ein sizeof(P_HANDS_USED_BY).
+NAME
+====
 
-BEMERKUNGEN:
-    Keine echte Property. Die Methode /std/living/combat::_query_used_hands
-    stellt die Daten zusammen. Nicht setzen!
+   P_USED_HANDS                  "used_hands"
 
-SIEHE AUCH:
-    P_HANDS, P_HANDS_USED_BY
-    P_MAX_HANDS, P_FREE_HANDS
-    UseHands, FreeHands
+
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+BESCHREIBUNG
+============
+
+   Anzahl der Haende in Benutzung.
+   Effektiv nur ein sizeof(P_HANDS_USED_BY).
+
+
+BEMERKUNGEN
+===========
+
+   Keine echte Property. Die Methode /std/living/combat::_query_used_hands
+   stellt die Daten zusammen. Nicht setzen!
+
+
+SIEHE AUCH
+==========
+
+   P_HANDS, P_HANDS_USED_BY
+   P_MAX_HANDS, P_FREE_HANDS
+   UseHands, FreeHands
 
 1. Okt 2012, Gloinson
diff --git a/doc/props/P_VALID_GUILDS b/doc/props/P_VALID_GUILDS
index 2734ad9..f431e7b 100644
--- a/doc/props/P_VALID_GUILDS
+++ b/doc/props/P_VALID_GUILDS
@@ -1,23 +1,41 @@
-NAME:
-	P_VALID_GUILDS			"valid_guilds"                
 
-DEFINIERT IN:
-	/sys/new_skills.h
+P_VALID_GUILDS
+**************
 
-BESCHREIBUNG:
-	Diese Property enthaelt die zugelassenen Gilden in Form von
-	kleingeschriebenen Gildennamen, welche in einem Array
-	zusammengefasst sind. Sie ist nur fuer den Gildenmaster selbst von
-	Bedeutung.
 
-BEISPIELE:
-	Abfrage der zugelassenen Gilden:
-	  find_object("/obj/gildenmaster")->QueryProp(P_VALID_GUILDS)
-	Das ergibt zum Beispiel:
-          ({"abenteurer","zauberer","klerus","kaempfer"})
+NAME
+====
 
-SIEHE AUCH:
-	P_GUILD, /obj/gildenmaster.c
+   P_VALID_GUILDS                  "valid_guilds"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt die zugelassenen Gilden in Form von
+   kleingeschriebenen Gildennamen, welche in einem Array
+   zusammengefasst sind. Sie ist nur fuer den Gildenmaster selbst von
+   Bedeutung.
+
+
+BEISPIELE
+=========
+
+   Abfrage der zugelassenen Gilden:
+     find_object("/obj/gildenmaster")->QueryProp(P_VALID_GUILDS)
+   Das ergibt zum Beispiel:
+     ({"abenteurer","zauberer","klerus","kaempfer"})
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD, /obj/gildenmaster.c
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_VALUE b/doc/props/P_VALUE
index d9b5961..cb48202 100644
--- a/doc/props/P_VALUE
+++ b/doc/props/P_VALUE
@@ -1,26 +1,43 @@
-NAME:
-    P_VALUE                       "value"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_VALUE
+*******
 
-BESCHREIBUNG:
 
-     - Objekte
-       Wert des Objektes in Goldmuenzen. Diesen Wert erhaelt man beim
-       Verkauf. Kaufen kostet ein Vielfaches hiervon.
+NAME
+====
 
-     - Speisen/Kneipen
-       Wert einer Portion der Speise.
-       
-BEMERKUNGEN:
-     In tragbaren Speisen (erben von /std/food) setzt man mit SetProp
-     den Wert _einer_ Portion. Per QueryProp erhaelt man aber den Gesamt-
-     wert der Speise inclusive des eventuell vorhandenen Behaelters. Der
-     Wert des Behaelters wird dabei aus P_EMPTY_PROPS[P_VALUE] gelesen.
-     
-SIEHE AUCH:
-     Speisen: std/pub, wiz/food, P_EMPTY_PROPS
+   P_VALUE                       "value"
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   - Objekte
+     Wert des Objektes in Goldmuenzen. Diesen Wert erhaelt man beim
+     Verkauf. Kaufen kostet ein Vielfaches hiervon.
+
+   - Speisen/Kneipen
+     Wert einer Portion der Speise.
+
+
+BEMERKUNGEN
+===========
+
+   In tragbaren Speisen (erben von /std/food) setzt man mit SetProp
+   den Wert _einer_ Portion. Per QueryProp erhaelt man aber den Gesamt-
+   wert der Speise inclusive des eventuell vorhandenen Behaelters. Der
+   Wert des Behaelters wird dabei aus P_EMPTY_PROPS[P_VALUE] gelesen.
+
+
+SIEHE AUCH
+==========
+
+   Speisen: std/pub, wiz/food, P_EMPTY_PROPS
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_VALUE_PER_UNIT b/doc/props/P_VALUE_PER_UNIT
index da779c5..3ff1b3c 100644
--- a/doc/props/P_VALUE_PER_UNIT
+++ b/doc/props/P_VALUE_PER_UNIT
@@ -1,14 +1,29 @@
-NAME:
-    P_VALUE_PER_UNIT              "value_per_unit"              
 
-DEFINIERT IN:
-    /sys/properties.h
+P_VALUE_PER_UNIT
+****************
 
-BESCHREIBUNG:
-     Wert in Goldstuecken pro Untereinheit.
 
-BEMERKUNGEN:
-     Deprecated. Bitte SetCoinsPerUnits() (U_CPU) benutzen.
+NAME
+====
+
+   P_VALUE_PER_UNIT              "value_per_unit"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Wert in Goldstuecken pro Untereinheit.
+
+
+BEMERKUNGEN
+===========
+
+   Deprecated. Bitte SetCoinsPerUnits() (U_CPU) benutzen.
 
 25.Aug 2015 Gloinson
-
diff --git a/doc/props/P_VARIABLES b/doc/props/P_VARIABLES
index 5e7fb5c..52a979c 100644
--- a/doc/props/P_VARIABLES
+++ b/doc/props/P_VARIABLES
@@ -1,16 +1,28 @@
 
-NAME:
-    P_VARIABLES "variables"                 
+P_VARIABLES
+***********
 
-DEFINIERT IN:
-    /sys/magier.h
 
-BESCHREIBUNG:
-	
-     Interne Variable der Magiershell in dem die mit dem 'Set'-Befehl
-     gesetzten Variablen gespeichert werden.
-     
-     NICHT VON HAND VERAENDERN! IMMER 'SET' VERWENDEN!
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_VARIABLES "variables"
+
+
+DEFINIERT IN
+============
+
+   /sys/magier.h
+
+
+BESCHREIBUNG
+============
+
+   Interne Variable der Magiershell in dem die mit dem 'Set'-Befehl
+   gesetzten Variablen gespeichert werden.
+
+
+
+   NICHT VON HAND VERAENDERN! IMMER 'SET' VERWENDEN!
+
 Letzte Aenderung: 13.02.2003 22:00:00 von Mandragon
diff --git a/doc/props/P_VISIBLE_GUILD b/doc/props/P_VISIBLE_GUILD
index df267b5..92de8b7 100644
--- a/doc/props/P_VISIBLE_GUILD
+++ b/doc/props/P_VISIBLE_GUILD
@@ -1,25 +1,42 @@
+
 P_VISIBLE_GUILD
-NAME:
-     P_VISIBLE_GUILD			"visible_guild"                       
+***************
 
-DEFINIERT IN:
-     /sys/properties.h
 
-BESCHREIBUNG:
-     Diese Property enthaelt die sichtbare Gilde des Lebewesens in Form eines
-     kleingeschriebenen Strings, also die Gilde, die bei Spielern zum
-     Beispiel bei 'kwer' oder 'finger' angezeigt wird. So kann man fremde
-     Gilden testen und trotzdem nach aussen hin in der gleichen Gilde wie
-     zuvor bleiben.
+NAME
+====
 
-BEISPIEL:
-     Wenn man gerne nach aussen hin Zauberer bleiben moechte:
-	  pl->SetProp(P_VISIBLE_GUILD,"zauberer");
-     Nach aussen hin bleibt man jetzt auch Zauberer, wenn P_GUILD eine
-     andere Gilde angibt.
+   P_VISIBLE_GUILD                    "visible_guild"
 
-SIEHE AUCH:
-     P_GUILD, P_DEFAULT_GUILD
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt die sichtbare Gilde des Lebewesens in Form eines
+   kleingeschriebenen Strings, also die Gilde, die bei Spielern zum
+   Beispiel bei 'kwer' oder 'finger' angezeigt wird. So kann man fremde
+   Gilden testen und trotzdem nach aussen hin in der gleichen Gilde wie
+   zuvor bleiben.
+
+
+BEISPIEL
+========
+
+   Wenn man gerne nach aussen hin Zauberer bleiben moechte:
+        pl->SetProp(P_VISIBLE_GUILD,"zauberer");
+   Nach aussen hin bleibt man jetzt auch Zauberer, wenn P_GUILD eine
+   andere Gilde angibt.
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD, P_DEFAULT_GUILD
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/P_VISIBLE_SUBGUILD_TITLE b/doc/props/P_VISIBLE_SUBGUILD_TITLE
index e398f02..e0e5c83 100644
--- a/doc/props/P_VISIBLE_SUBGUILD_TITLE
+++ b/doc/props/P_VISIBLE_SUBGUILD_TITLE
@@ -1,21 +1,39 @@
+
 P_VISIBLE_SUBGUILD_TITLE
-NAME:
-     P_VISIBLE_SUBGUILD_TITLE		"visible_subguild_title"                       
-DEFINIERT IN:
-     /sys/new_skills.h
+************************
 
-BESCHREIBUNG:
-     Diese Property dient dazu, als Magier einen Zusatztitel innerhalb einer
-     Gilde vorzutaeuschen, ohne den tatsaechlichen P_SUBGUILD_TITLE zu
-     aendern.
 
-BEMERKUNGEN:
-     Inhalt der Property kann 0 sein oder ein String.
-     Wenn der Inhalt 0 ist, wird bei QueryProp der P_SUBGUILD_TITLE
-     durchgereicht.
+NAME
+====
 
-SIEHE AUCH:
-     P_GUILD_TITLE, P_SUBGUILD_TITLE
+   P_VISIBLE_SUBGUILD_TITLE           "visible_subguild_title"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property dient dazu, als Magier einen Zusatztitel innerhalb einer
+   Gilde vorzutaeuschen, ohne den tatsaechlichen P_SUBGUILD_TITLE zu
+   aendern.
+
+
+BEMERKUNGEN
+===========
+
+   Inhalt der Property kann 0 sein oder ein String.
+   Wenn der Inhalt 0 ist, wird bei QueryProp der P_SUBGUILD_TITLE
+   durchgereicht.
+
+
+SIEHE AUCH
+==========
+
+   P_GUILD_TITLE, P_SUBGUILD_TITLE
+
 Last modified: Mon Aug 13 21:20:00 2001 by Nachtwind
diff --git a/doc/props/P_VISUALBELL b/doc/props/P_VISUALBELL
index 19e8519..8a3d836 100644
--- a/doc/props/P_VISUALBELL
+++ b/doc/props/P_VISUALBELL
@@ -1,37 +1,58 @@
-NAME:
-	P_VISUALBELL			"visualbell"
 
-DEFINIERT IN:
-	/sys/properties.h
+P_VISUALBELL
+************
 
-BESCHREIBUNG:
-	Die Property stellt ein Flag innerhalb von Spielern dar, welches
-	standardmaessig nicht gesetzt ist. In diesem Fall werden Toene,
-	welche innerhalb einiger Funktionen erzeugt werden, auch wirklich an
-	den Spieler geschickt.
-	Setzt man die Property, so erhaelt der Spieler keine Toene mehr.
 
-BEISPIEL:
-	Pieptoene werden durch den ASCII-Code 0x7 praesentiert. Ausgeben
-	kann man diesen folgendermassen:
-	  if(!IS_WIZARD(caster)&&!victim->QueryProp(P_VISUALBELL))
-	    tell_object(victim,sprintf("%c",7));
-	Das waere beispielsweise ein Codestueck aus einem Piepspell. :)
-	Das Opfer bekommt den Piepton hierbei nur ab, wenn der Caster ein
-	Magier ist oder das Spieleropfer die Property P_VISUALBELL gesetzt
-	hat (kann mit Kommando 'ton' vom Spieler beeinflusst werden).
+NAME
+====
 
-BEMERKUNGEN:
-  Achtung: P_VISUALBELL steht auf 1, wenn der Spieler _keine_ Piepstoene
-	hoeren will!
-	Die Funktionalitaet dieser Property wirkt nur soweit, wie sie auch
-	von tonerzeugenden Befehlen selbst unterstuetzt wird. Es ist darauf
-	zu achten, dass P_VISUALBELL zu diesem Zweck grundsaetzlich
-	ausgewertet wird! Eine Ausnahme sei hierbei zugelassen: Magier
-	koennen Spielern grundsaetzlich Toene zusenden.
+   P_VISUALBELL                    "visualbell"
 
-SIEHE AUCH:
-	ton, wecke, erwarte, P_WAITFOR, /std/player/base.c
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Die Property stellt ein Flag innerhalb von Spielern dar, welches
+   standardmaessig nicht gesetzt ist. In diesem Fall werden Toene,
+   welche innerhalb einiger Funktionen erzeugt werden, auch wirklich an
+   den Spieler geschickt.
+   Setzt man die Property, so erhaelt der Spieler keine Toene mehr.
+
+
+BEISPIEL
+========
+
+   Pieptoene werden durch den ASCII-Code 0x7 praesentiert. Ausgeben
+   kann man diesen folgendermassen:
+     if(!IS_WIZARD(caster)&&!victim->QueryProp(P_VISUALBELL))
+       tell_object(victim,sprintf("%c",7));
+   Das waere beispielsweise ein Codestueck aus einem Piepspell. :)
+   Das Opfer bekommt den Piepton hierbei nur ab, wenn der Caster ein
+   Magier ist oder das Spieleropfer die Property P_VISUALBELL gesetzt
+   hat (kann mit Kommando 'ton' vom Spieler beeinflusst werden).
+
+
+BEMERKUNGEN
+===========
+
+   Achtung: P_VISUALBELL steht auf 1, wenn der Spieler _keine_ Piepstoene
+         hoeren will!
+         Die Funktionalitaet dieser Property wirkt nur soweit, wie sie auch
+         von tonerzeugenden Befehlen selbst unterstuetzt wird. Es ist darauf
+         zu achten, dass P_VISUALBELL zu diesem Zweck grundsaetzlich
+         ausgewertet wird! Eine Ausnahme sei hierbei zugelassen: Magier
+         koennen Spielern grundsaetzlich Toene zusenden.
+
+
+SIEHE AUCH
+==========
+
+   ton, wecke, erwarte, P_WAITFOR, /std/player/base.c
+
 Last modified: 07.02.2007 by Zesstra
diff --git a/doc/props/P_VULNERABILITY b/doc/props/P_VULNERABILITY
index 7e1c676..f0e3abb 100644
--- a/doc/props/P_VULNERABILITY
+++ b/doc/props/P_VULNERABILITY
@@ -1,37 +1,62 @@
-NAME:
-     P_VULNERABILITY               "vulnerability"
 
-DEFINIERT IN:
-     /sys/living/combat.h
+P_VULNERABILITY
+***************
 
-WICHTIG:
-     DIESE PROPERTY IST VERALTET! BITTE P_RESISTANCE_STRENGTHS
-     VERWENDEN! AUCH FUNKTIONIERT Set() NICHT WIE ES SOLLTE.
 
-BESCHREIBUNG:
-     Hiermit koennen die Empfindlichkeiten eines Lebewesens definiert
-     werden. Es kann ein Array mit Schadensarten gesetzt werden, jeder
-     Eintrag eines Schadens verdoppelt die Empfindlichkeit gegen
-     diesen.
+NAME
+====
 
-BEMERKUNGEN:
-     - P_RESISTANCE_STRENGTHS spiegelt die Eintraege hier wieder
-     - um genauere Werte anzugeben einen AddResistanceModifier() oder
-       P_RESISTANCE_STRENGTHS benutzen.
-     - P_VULNERABILITY kann und wird nicht aus P_RESISTANCE_STRENGTHS
-       upgedatet
+   P_VULNERABILITY               "vulnerability"
 
-BEISPIELE:
-     // ein NPC mit verdoppelter Eisempfindlichkeit und
-     // vervierfachter Wasserempfindlichkeit
-     SetProp(P_VULNERABILITY, ({DT_COLD, DT_WATER, DT_WATER}));
 
-SIEHE AUCH:
-     simple Resistenz:	P_RESISTANCE
-     Hauptmapping:	P_RESISTANCE_STRENGTHS
-     Modifikatoren:	AddResistanceModifier, RemoveResistanceModifier(),
-			P_RESISTANCE_MODIFIER
-     Berechnung:	CheckResistance(), UpdateResistanceStrengths()
-     anderes:		balance, /std/armour/combat.c, /std/living/combat.c
+DEFINIERT IN
+============
+
+   /sys/living/combat.h
+
+
+WICHTIG
+=======
+
+   DIESE PROPERTY IST VERALTET! BITTE P_RESISTANCE_STRENGTHS
+   VERWENDEN! AUCH FUNKTIONIERT Set() NICHT WIE ES SOLLTE.
+
+
+BESCHREIBUNG
+============
+
+   Hiermit koennen die Empfindlichkeiten eines Lebewesens definiert
+   werden. Es kann ein Array mit Schadensarten gesetzt werden, jeder
+   Eintrag eines Schadens verdoppelt die Empfindlichkeit gegen
+   diesen.
+
+
+BEMERKUNGEN
+===========
+
+   - P_RESISTANCE_STRENGTHS spiegelt die Eintraege hier wieder
+   - um genauere Werte anzugeben einen AddResistanceModifier() oder
+     P_RESISTANCE_STRENGTHS benutzen.
+   - P_VULNERABILITY kann und wird nicht aus P_RESISTANCE_STRENGTHS
+     upgedatet
+
+
+BEISPIELE
+=========
+
+   // ein NPC mit verdoppelter Eisempfindlichkeit und
+   // vervierfachter Wasserempfindlichkeit
+   SetProp(P_VULNERABILITY, ({DT_COLD, DT_WATER, DT_WATER}));
+
+
+SIEHE AUCH
+==========
+
+   simple Resistenz:  P_RESISTANCE
+   Hauptmapping:      P_RESISTANCE_STRENGTHS
+   Modifikatoren:     AddResistanceModifier, RemoveResistanceModifier(),
+                      P_RESISTANCE_MODIFIER
+   Berechnung:        CheckResistance(), UpdateResistanceStrengths()
+   anderes:           balance, /std/armour/combat.c, /std/living/combat.c
 
 1.Dez 2004, Gloinson
diff --git a/doc/props/P_WAITFOR b/doc/props/P_WAITFOR
index a8cf8ee..301838e 100644
--- a/doc/props/P_WAITFOR
+++ b/doc/props/P_WAITFOR
@@ -1,14 +1,30 @@
-NAME:
-     P_WAITFOR                     "waitfor"                     
 
-DEFINIERT IN:
-     /sys/player/base.h
+P_WAITFOR
+*********
 
-BESCHREIBUNG:
-     Die Erwarte-Liste. Ein Array mit den Namen der Erwarteten.
 
-SIEHE AUCH:
-     erwarte
-     P_WAITFOR_REASON, P_WAITFOR_FLAGS
+NAME
+====
+
+   P_WAITFOR                     "waitfor"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Die Erwarte-Liste. Ein Array mit den Namen der Erwarteten.
+
+
+SIEHE AUCH
+==========
+
+   erwarte
+   P_WAITFOR_REASON, P_WAITFOR_FLAGS
 
 16. Feb 2008 Gloinson
diff --git a/doc/props/P_WAITFOR_FLAGS b/doc/props/P_WAITFOR_FLAGS
index f137dd1..5e616b7 100644
--- a/doc/props/P_WAITFOR_FLAGS
+++ b/doc/props/P_WAITFOR_FLAGS
@@ -1,17 +1,34 @@
+
 P_WAITFOR_FLAGS
-NAME:
-     P_WAITFOR_FLAGS                  "waitfor_flags"                     
+***************
 
-DEFINIERT IN:
-     /sys/player/base.h
 
-BESCHREIBUNG:
-     Ein Int. Bisher bekannte Flags:
-     
-     0x01 - "erwarte aus"
+NAME
+====
 
-SIEHE AUCH:
-     erwarte
-     P_WAITFOR, P_WAITFOR_REASON
+   P_WAITFOR_FLAGS                  "waitfor_flags"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Ein Int. Bisher bekannte Flags:
+
+
+
+   0x01 - "erwarte aus"
+
+
+SIEHE AUCH
+==========
+
+   erwarte
+   P_WAITFOR, P_WAITFOR_REASON
 
 16. Feb 2008 Gloinson
diff --git a/doc/props/P_WAITFOR_REASON b/doc/props/P_WAITFOR_REASON
index b19c821..1d997d8 100644
--- a/doc/props/P_WAITFOR_REASON
+++ b/doc/props/P_WAITFOR_REASON
@@ -1,18 +1,35 @@
+
 P_WAITFOR_REASON
-NAME:
-     P_WAITFOR_REASON                  "waitfor_reason"                     
+****************
 
-DEFINIERT IN:
-     /sys/player/base.h
 
-BESCHREIBUNG:
-     Ein Mapping mit den Erwarteten als Schluessel und einem Grund als
-     Key, zB:
-     
-     (["Zook":"muh muh"])
+NAME
+====
 
-SIEHE AUCH:
-     erwarte (erwarte <wen> wegen <was>)
-     P_WAITFOR, P_WAITFOR_FLAGS
+   P_WAITFOR_REASON                  "waitfor_reason"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Ein Mapping mit den Erwarteten als Schluessel und einem Grund als
+   Key, zB:
+
+
+
+   (["Zook":"muh muh"])
+
+
+SIEHE AUCH
+==========
+
+   erwarte (erwarte <wen> wegen <was>)
+   P_WAITFOR, P_WAITFOR_FLAGS
 
 16. Feb 2008 Gloinson
diff --git a/doc/props/P_WANTS_TO_LEARN b/doc/props/P_WANTS_TO_LEARN
index a1553bd..639ab61 100644
--- a/doc/props/P_WANTS_TO_LEARN
+++ b/doc/props/P_WANTS_TO_LEARN
@@ -1,12 +1,25 @@
-NAME:
-    P_WANTS_TO_LEARN              "wants_to_learn"              
 
-DEFINIERT IN:
-    /sys/player/base.h
+P_WANTS_TO_LEARN
+****************
 
-BESCHREIBUNG:
-     Gesetzt, wenn der Magier die Filenamen sehen will.
-     (Nur fuer Magier). Wird diese Property auf 0 gesetzt, gehen auch
-     einige andere Dinge nicht mehr - verfolge zB. Eigentlich sollten
-     dann auch die Magierbefehle wie "goto" usw unterbunden werden -
-     das kommt vielleicht noch.
+
+NAME
+====
+
+   P_WANTS_TO_LEARN              "wants_to_learn"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/base.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt, wenn der Magier die Filenamen sehen will.
+   (Nur fuer Magier). Wird diese Property auf 0 gesetzt, gehen auch
+   einige andere Dinge nicht mehr - verfolge zB. Eigentlich sollten
+   dann auch die Magierbefehle wie "goto" usw unterbunden werden -
+   das kommt vielleicht noch.
diff --git a/doc/props/P_WATER b/doc/props/P_WATER
index 6be4fe6..79742c1 100644
--- a/doc/props/P_WATER
+++ b/doc/props/P_WATER
@@ -1,110 +1,130 @@
-NAME:
-    P_WATER                       "water"                       
 
-DEFINIERT IN:
-    /sys/fishing.h
-
-BESCHREIBUNG:
-    Enthaelt den Gewaessertyp. Kann in Raeumen, Angeln und Wasserbehaeltern
-    verwendet werden. Die verfuegbaren Optionen und Funktionsweisen sind in 
-    den nachfolgenden Abschnitten aufgefuehrt.
-
-    Raum:
-    *****
-      Legt den Typ des Gewaessers fest, das es in diesem Raum gibt. Von
-      diesem Typ haengt ab, welche Arten von Fischen es hier standardmaessig
-      gibt und welche Arten von Angeln verwendet werden koennen. 
-      
-      Beispiel:
-
-      SetProp(P_WATER, W_HARBOR);
-      
-      Folgende
-      Typen stehen zur Verfuegung, von denen in Raeumen nur einer gesetzt
-      werden darf:
-
-      Salzwasser:
-        W_BEACH   Strand: Scholle, Flunder, Rochen, Seezunge, Katzenhai
-        W_HARBOR  Hafen: Dorsch, Rochen, Seezunge, Hering, Katzenhai
-        W_OCEAN   Ozean/Meer: Hai, Thunfisch, Kabeljau, Schwertfisch, Seehase,
-                  Seeteufel, Seewolf
-
-      Suesswasser:
-        W_RIVER   Fluss: Piranha, Lachs, Forelle, Bachsaibling
-        W_POOL    Teich: Stichling, Goldfisch, Schlei, Karpfen, Goldorfe
-        W_LAKE    See: Karpfen, Barsch, Hecht, Seesaibling
-        W_ROCK    Bergbach: Lachs, Forelle, Bachsaibling
-        W_STREAM  Bach: Stichling, Bachforelle, Neuauge, Bachsaibling
-
-      Sonstige:
-        W_USER    wenn dieser Gewaessertyp gesetzt wird, MUSS der Raum 
-                  zusaetzlich die Funktion GetAquarium() definieren, die
-                  eine Liste der hier fangbaren Fische zurueckgeben muss.
-                  Beispiel:
-
-                  string* GetAquarium(){ 
-                    return ({"/d/ebene/fraggle/angel/fisch"}); 
-                  }
-        W_DEAD    Lebloses Wasser. Enthaelt keine Fische, man kann
-                  aber die Standardflasche fuellen.
-
-        W_OTHER   1024   // Flasche enthaelt Fluessigkeit!=Wasser
+P_WATER
+*******
 
 
-    Angel:
-    ******
-      Angeln sind ueblicherweise auf bestimmte Anwendungsbereiche ausgelegt.
-      Ob eine Angel in einem Gewaesser benutzt werden kann, haengt davon ab,
-      ob P_WATER in der Angel den Gewaessertyp des Raumes enthaelt. Von den
-      oben genannten Typen koennen mehrere ver-ODER-t gesetzt werden.
-      Verwendung einer fuer das oertliche Gewaesser ungeeigneten Angel fuehrt
-      zu einer um 60+random(60) Sekunden verlaengerten Wartezeit beim Angeln.
-      
-      Beispiel: Setzt man den Gewaessertyp mit 
+NAME
+====
 
-        SetProp(P_WATER, W_HARBOR|W_OCEAN);
+   P_WATER                       "water"
 
-      schaltet das die Angel sowohl fuer Haefen, als auch fuer offene Meere
-      (Ozeane) frei.
 
-      Folgende kombinierte Gewaessertypen sind fuer einfache Angeln 
-      vordefiniert:
+DEFINIERT IN
+============
 
-      Kurze Standardangeln:
-        W_SHORT W_HARBOR|W_RIVER|W_POOL|W_LAKE|W_ROCK|W_USER|W_OCEAN|W_STREAM
-      Spezielle Strandruten:
-        W_LONG  W_BEACH|W_USER
-      funktioniert in allen Salzgewaessern:
-        W_SALT  W_HARBOR|W_OCEAN|W_BEACH
-      funktioniert in allen Suessgewaessern:
-        W_SWEET W_RIVER|W_POOL|W_LAKE|W_ROCK|W_STREAM
+   /sys/fishing.h
 
-      Hinweis: W_DEAD ist in diesen Kombinationen nicht enthalten, da es
-      in solchen Gewaessern ohnehin keine Fische gibt.
-      Die Kombi-Typen enthalten W_USER, um bei entsprechenden Gewaessern
-      zu vermeiden, dass es dort standardmaessig einen Malus auf die 
-      Wartezeit gibt. Standardwert fuer P_WATER in Angeln ist ebenfalls 
-      W_USER.
 
-    Koeder:
-    *******
-      Auch Koeder koennen fuer die Verwendung in bestimmten Gewaessern besser
-      geeignet sein als in anderen, z.B. eine Seeschnecke fuer Salzwasser,
-      ein Mehlwurm hingegen fuer Suesswasser. Gesetzt wird P_WATER hierfuer
-      auf die oben aufgefuehrten Werte.
-      Verwendung eines ungeeigneten Koeders fuehrt zu einer um 60+random(60)
-      Sekunden laengeren Wartezeit beim Angeln.
+BESCHREIBUNG
+============
 
-    Wasserbehaelter:
-    ****************
-      Die Property gibt an, ob der Behaelter Wasser enthaelt oder nicht.
-      Der Wert sollte immer auf den Typ jenes Gewaessers gesetzt sein, aus
-      dem der Behaelter aufgefuellt wurde.
+   Enthaelt den Gewaessertyp. Kann in Raeumen, Angeln und Wasserbehaeltern
+   verwendet werden. Die verfuegbaren Optionen und Funktionsweisen sind in
+   den nachfolgenden Abschnitten aufgefuehrt.
 
-SIEHE AUCH:
+   Raum:
+   *****
+     Legt den Typ des Gewaessers fest, das es in diesem Raum gibt. Von
+     diesem Typ haengt ab, welche Arten von Fischen es hier standardmaessig
+     gibt und welche Arten von Angeln verwendet werden koennen.
 
-    Properties: P_FISH
-    Methoden:   GetAquarium(L)
 
-------------------------------------------------------------------------------
+
+     Beispiel:
+
+     SetProp(P_WATER, W_HARBOR);
+
+
+
+     Folgende
+     Typen stehen zur Verfuegung, von denen in Raeumen nur einer gesetzt
+     werden darf:
+
+     Salzwasser:
+       W_BEACH   Strand: Scholle, Flunder, Rochen, Seezunge, Katzenhai
+       W_HARBOR  Hafen: Dorsch, Rochen, Seezunge, Hering, Katzenhai
+       W_OCEAN   Ozean/Meer: Hai, Thunfisch, Kabeljau, Schwertfisch, Seehase,
+                 Seeteufel, Seewolf
+
+     Suesswasser:
+       W_RIVER   Fluss: Piranha, Lachs, Forelle, Bachsaibling
+       W_POOL    Teich: Stichling, Goldfisch, Schlei, Karpfen, Goldorfe
+       W_LAKE    See: Karpfen, Barsch, Hecht, Seesaibling
+       W_ROCK    Bergbach: Lachs, Forelle, Bachsaibling
+       W_STREAM  Bach: Stichling, Bachforelle, Neuauge, Bachsaibling
+
+     Sonstige:
+       W_USER    wenn dieser Gewaessertyp gesetzt wird, MUSS der Raum
+                 zusaetzlich die Funktion GetAquarium() definieren, die
+                 eine Liste der hier fangbaren Fische zurueckgeben muss.
+                 Beispiel:
+
+                 string* GetAquarium(){
+                   return ({"/d/ebene/fraggle/angel/fisch"});
+                 }
+       W_DEAD    Lebloses Wasser. Enthaelt keine Fische, man kann
+                 aber die Standardflasche fuellen.
+
+       W_OTHER   1024   // Flasche enthaelt Fluessigkeit!=Wasser
+
+
+   Angel:
+   ******
+     Angeln sind ueblicherweise auf bestimmte Anwendungsbereiche ausgelegt.
+     Ob eine Angel in einem Gewaesser benutzt werden kann, haengt davon ab,
+     ob P_WATER in der Angel den Gewaessertyp des Raumes enthaelt. Von den
+     oben genannten Typen koennen mehrere ver-ODER-t gesetzt werden.
+     Verwendung einer fuer das oertliche Gewaesser ungeeigneten Angel fuehrt
+     zu einer um 60+random(60) Sekunden verlaengerten Wartezeit beim Angeln.
+
+
+
+     Beispiel: Setzt man den Gewaessertyp mit
+
+       SetProp(P_WATER, W_HARBOR|W_OCEAN);
+
+     schaltet das die Angel sowohl fuer Haefen, als auch fuer offene Meere
+     (Ozeane) frei.
+
+     Folgende kombinierte Gewaessertypen sind fuer einfache Angeln
+     vordefiniert:
+
+     Kurze Standardangeln:
+       W_SHORT W_HARBOR|W_RIVER|W_POOL|W_LAKE|W_ROCK|W_USER|W_OCEAN|W_STREAM
+     Spezielle Strandruten:
+       W_LONG  W_BEACH|W_USER
+     funktioniert in allen Salzgewaessern:
+       W_SALT  W_HARBOR|W_OCEAN|W_BEACH
+     funktioniert in allen Suessgewaessern:
+       W_SWEET W_RIVER|W_POOL|W_LAKE|W_ROCK|W_STREAM
+
+     Hinweis: W_DEAD ist in diesen Kombinationen nicht enthalten, da es
+     in solchen Gewaessern ohnehin keine Fische gibt.
+     Die Kombi-Typen enthalten W_USER, um bei entsprechenden Gewaessern
+     zu vermeiden, dass es dort standardmaessig einen Malus auf die
+     Wartezeit gibt. Standardwert fuer P_WATER in Angeln ist ebenfalls
+     W_USER.
+
+   Koeder:
+   *******
+     Auch Koeder koennen fuer die Verwendung in bestimmten Gewaessern besser
+     geeignet sein als in anderen, z.B. eine Seeschnecke fuer Salzwasser,
+     ein Mehlwurm hingegen fuer Suesswasser. Gesetzt wird P_WATER hierfuer
+     auf die oben aufgefuehrten Werte.
+     Verwendung eines ungeeigneten Koeders fuehrt zu einer um 60+random(60)
+     Sekunden laengeren Wartezeit beim Angeln.
+
+   Wasserbehaelter:
+   ****************
+     Die Property gibt an, ob der Behaelter Wasser enthaelt oder nicht.
+     Der Wert sollte immer auf den Typ jenes Gewaessers gesetzt sein, aus
+     dem der Behaelter aufgefuellt wurde.
+
+
+SIEHE AUCH
+==========
+
+   Properties: P_FISH
+   Methoden:   GetAquarium(L)
+
 Zuletzt geaendert: 2014-Aug-21, Arathorn
diff --git a/doc/props/P_WC b/doc/props/P_WC
index 042de3d..cfa18e4 100644
--- a/doc/props/P_WC
+++ b/doc/props/P_WC
@@ -1,37 +1,56 @@
-NAME:
-	P_WC				"wc"
 
-DEFINIERT IN:
-	/sys/weapon.h
+P_WC
+****
 
-BESCHREIBUNG:
-	Die Waffenklasse (engl: weapon class), also die Staerke der Waffe,
-	stellt einen numerischen Wert dar, der umso groesser ist, desto mehr
-	Schaden eine Waffe im Kampf anrichtet. Beim Zuecken oder Wegstecken
-	einer Waffe durch ein Lebewesen wird innerhalb des Lebewesens auch
-	die Property P_TOTAL_WC aktualisiert, welche somit immer die
-	aktuelle Angriffsstaerke enthaelt. Beim Zuecken erhaelt sie hierbei
-	die Waffenklasse der Waffe und beim Wegstecken die Angriffsstaerke
-	aus der Property P_HANDS (Kaempfen mit blossen Haenden).
-	Die Waffenklasse von einhaendigen Waffen sollte 150 nicht
-	ueberschreiten, die Obergrenze fuer zweihaendige Waffen liegt bei
-	200. Ausnahmen von dieser Regel beduerfen der Absprache mit dem
-	Erzmagier fuer Ruestungen, Waffen und Monster!
-	Negative Werte bewirken keinen Schaden, allerdings auch keine
-	Heilung.
 
-BEMERKUNGEN:
-	Query- und Setmethoden auf P_WC sollten unbedingt vermieden werden. Sie
-	fuehren in der Regel zu massiven Inkonsistenzen im Mechanismus der 
-	Ruestungsbeschaedigung und -reparatur.
-	Auch mit einer HitFunc() duerfen die Obergrenzen nicht ohne
-	Absprache ueberschritten werden! Ausserdem ist es ratsam, die
-	zusaetzlichen Kampfeigenschaften in P_EFFECTIVE_WC gesondert
-	anzugeben.
+NAME
+====
 
-SIEHE AUCH:
-	/std/weapon.c, /std/weapon/combat.c
-	P_DAMAGED, P_EFFECTIVE_WC, P_WEAPON_TYPE
-	Damage()
-----------------------------------------------------------------------------
-02.10.2007, Zesstra
+   P_WC                            "wc"
+
+
+DEFINIERT IN
+============
+
+   /sys/weapon.h
+
+
+BESCHREIBUNG
+============
+
+   Die Waffenklasse (engl: weapon class), also die Staerke der Waffe,
+   stellt einen numerischen Wert dar, der umso groesser ist, desto mehr
+   Schaden eine Waffe im Kampf anrichtet. Beim Zuecken oder Wegstecken
+   einer Waffe durch ein Lebewesen wird innerhalb des Lebewesens auch
+   die Property P_TOTAL_WC aktualisiert, welche somit immer die
+   aktuelle Angriffsstaerke enthaelt. Beim Zuecken erhaelt sie hierbei
+   die Waffenklasse der Waffe und beim Wegstecken die Angriffsstaerke
+   aus der Property P_HANDS (Kaempfen mit blossen Haenden).
+   Die Waffenklasse von einhaendigen Waffen sollte 150 nicht
+   ueberschreiten, die Obergrenze fuer zweihaendige Waffen liegt bei
+   200. Ausnahmen von dieser Regel beduerfen der Absprache mit der
+   Balance.
+   Negative Werte bewirken keinen Schaden, allerdings auch keine
+   Heilung.
+
+
+BEMERKUNGEN
+===========
+
+   Query- und Setmethoden auf P_WC sollten unbedingt vermieden werden. Sie
+   fuehren in der Regel zu massiven Inkonsistenzen im Mechanismus der
+   Ruestungsbeschaedigung und -reparatur.
+   Auch mit einer HitFunc() duerfen die Obergrenzen nicht ohne
+   Absprache ueberschritten werden! Ausserdem ist es ratsam, die
+   zusaetzlichen Kampfeigenschaften in P_EFFECTIVE_WC gesondert
+   anzugeben.
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon.c, /std/weapon/combat.c
+   P_DAMAGED, P_EFFECTIVE_WC, P_WEAPON_TYPE
+   Damage()
+
+14.02.2017, Bugfix
diff --git a/doc/props/P_WEAPON b/doc/props/P_WEAPON
index 5b1854c..a7f68b2 100644
--- a/doc/props/P_WEAPON
+++ b/doc/props/P_WEAPON
@@ -1,17 +1,31 @@
+
 P_WEAPON
+********
 
-NAME:
-     P_WEAPON                      "weapon"
 
-DEFINIERT IN:
-     /sys/properties.h
+NAME
+====
 
-BESCHREIBUNG:
-      Momentan gezueckte Waffe. Im Living gesetzt.
+   P_WEAPON                      "weapon"
 
-SIEHE AUCH:
-      Verwandt:		P_ARMOURS
-      Waffen:		P_WC, P_WEAPON_TYPE, P_DAM_TYPE, P_NR_HANDS, P_PARRY
-      Sonstiges:	P_UNWIELD_TIME, P_EQUIP_TIME, P_LAST_USE
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Momentan gezueckte Waffe. Im Living gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:         P_ARMOURS
+   Waffen:           P_WC, P_WEAPON_TYPE, P_DAM_TYPE, P_NR_HANDS, P_PARRY
+   Sonstiges:        P_UNWIELD_TIME, P_EQUIP_TIME, P_LAST_USE
 
 10.Feb 2005 Gloinson
diff --git a/doc/props/P_WEAPON_TEACHER b/doc/props/P_WEAPON_TEACHER
index 685f9e4..ebeb788 100644
--- a/doc/props/P_WEAPON_TEACHER
+++ b/doc/props/P_WEAPON_TEACHER
@@ -1,18 +1,29 @@
-NAME:
-    P_WEAPON_TEACHER              "weapon_teacher"
+
+P_WEAPON_TEACHER
+****************
 
 
-DEFINIERT IN:
-    combat.h
+NAME
+====
 
-BESCHREIBUNG:
-    Diese Property wird in einem Azubi gesetzt (zur Zeit nur fuer die 
-    Kaempfer-Gilde), der selbst ueber die allgemeinen Waffenskills
-    verfuegt.
+   P_WEAPON_TEACHER              "weapon_teacher"
 
-    In diese Property wird der Name eines Kaempfergilden-Ausbilders
-    eingetragen.
 
-    Unter Anleitung des Ausbilders lernt der Azubi dann etwas schneller
-    die allgemeinen Waffenskills.
+DEFINIERT IN
+============
 
+   combat.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property wird in einem Azubi gesetzt (zur Zeit nur fuer die
+   Kaempfer-Gilde), der selbst ueber die allgemeinen Waffenskills
+   verfuegt.
+
+   In diese Property wird der Name eines Kaempfergilden-Ausbilders
+   eingetragen.
+
+   Unter Anleitung des Ausbilders lernt der Azubi dann etwas schneller
+   die allgemeinen Waffenskills.
diff --git a/doc/props/P_WEAPON_TYPE b/doc/props/P_WEAPON_TYPE
index 06f3c0b..d200054 100644
--- a/doc/props/P_WEAPON_TYPE
+++ b/doc/props/P_WEAPON_TYPE
@@ -1,31 +1,41 @@
+
 P_WEAPON_TYPE
+*************
 
-NAME:
-     P_WEAPON_TYPE "weapon_type"
 
-DEFINIERT IN:
-     <weapon.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Um was fuer eine Waffe handelt es sich? Es stehen verschiedene
-     Typen zur Auswahl. Man sollte hier nur die in <combat.h> definierten
-     Konstanten verwenden:
+   P_WEAPON_TYPE "weapon_type"
 
-        WT_AMMU           Munition fuer Fernkampfwaffen
-        WT_AXE            Axt
-        WT_CLUB           Keule
-        WT_HANDS          blosse Haende
-        WT_KNIFE          Messer, Dolch
-        WT_RANGED_WEAPON  Fernkampfwaffe
-        WT_SPEAR          Speer
-        WT_STAFF          Kampfstab
-        WT_SWORD          Schwert
-        WT_WHIP           Peitsche
-        WT_MISC           Sonstiges
 
-    Der Waffentyp WT_MISC ist schnoedem Tand und nutzlosem Kram vorbehalten.
-    Waffen dieses Typs duerfen keine P_WC > 0 besitzen oder kampfrelevante
-    Bedeutung haben.
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
+   <weapon.h>
+
+
+BESCHREIBUNG
+============
+
+    Um was fuer eine Waffe handelt es sich? Es stehen verschiedene
+    Typen zur Auswahl. Man sollte hier nur die in <combat.h> definierten
+    Konstanten verwenden:
+
+       WT_AMMU           Munition fuer Fernkampfwaffen
+       WT_AXE            Axt
+       WT_CLUB           Keule
+       WT_HANDS          blosse Haende
+       WT_KNIFE          Messer, Dolch
+       WT_RANGED_WEAPON  Fernkampfwaffe
+       WT_SPEAR          Speer
+       WT_STAFF          Kampfstab
+       WT_SWORD          Schwert
+       WT_WHIP           Peitsche
+       WT_MISC           Sonstiges
+
+   Der Waffentyp WT_MISC ist schnoedem Tand und nutzlosem Kram vorbehalten.
+   Waffen dieses Typs duerfen keine P_WC > 0 besitzen oder kampfrelevante
+   Bedeutung haben.
+
 Letzte Aenderung: 27. Mai 2015, Arathorn.
diff --git a/doc/props/P_WEAR_FUNC b/doc/props/P_WEAR_FUNC
index edc9bcc..d288187 100644
--- a/doc/props/P_WEAR_FUNC
+++ b/doc/props/P_WEAR_FUNC
@@ -1,24 +1,44 @@
+
 P_WEAR_FUNC
+***********
 
-NAME:
-     P_WEAR_FUNC "wear_func"
 
-DEFINIERT IN:
-     <armour.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Falls ein Objekt eine WearFunc() fuer die Ruestung / Kleidung definiert, 
-     so muss dieses Objekt in dieser Property eingetragen sein.
+   P_WEAR_FUNC "wear_func"
 
-     Die Auswertung dieser Property erfolgt in Laufe eines DoWear() in der
-     nicht-oeffentlichen Funktion _check_wear_restrictions()..
 
-BEISPIELE:
-     Siehe das Beispiel zu WearFunc()
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     armours, clothing, /std/clothing/wear.c, /std/armour/wear.c
-     WearFunc(), InformWear()
+   <armour.h>
 
-LETZTE AeNDERUNG:
-15.02.2009, Zesstra
\ No newline at end of file
+
+BESCHREIBUNG
+============
+
+   Falls ein Objekt eine WearFunc() fuer die Ruestung / Kleidung definiert,
+   so muss dieses Objekt in dieser Property eingetragen sein.
+
+   Die Auswertung dieser Property erfolgt in Laufe eines DoWear() in der
+   nicht-oeffentlichen Funktion _check_wear_restrictions()..
+
+
+BEISPIELE
+=========
+
+   Siehe das Beispiel zu WearFunc()
+
+
+SIEHE AUCH
+==========
+
+   armours, clothing, /std/clothing/wear.c, /std/armour/wear.c
+   WearFunc(), InformWear()
+
+
+LETZTE AeNDERUNG
+================
+
+15.02.2009, Zesstra
diff --git a/doc/props/P_WEAR_MSG b/doc/props/P_WEAR_MSG
index 31407fa..69fbf44 100644
--- a/doc/props/P_WEAR_MSG
+++ b/doc/props/P_WEAR_MSG
@@ -1,61 +1,82 @@
+
 P_WEAR_MSG
-NAME:
-    P_WEAR_MSG                       "wear_msg"                       
+**********
 
-DEFINIERT IN:
-    /sys/armour.h
 
-BESCHREIBUNG:
-     Zweiteiliges Array mit Meldungen, die beim Anziehen einer Ruestung oder
-     Kleidung an den Spieler und die Umgebung ausgegeben werden.
-     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
-     Umgebung. Zeilenumbrueche werden automatisch gemacht, existierende
-     jedoch beruecksichtigt.
+NAME
+====
 
-     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
-     man replace_personal()).
+   P_WEAR_MSG                       "wear_msg"
 
-     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
-      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
-      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
-      den Waffennamen.]
 
-BEISPIELE:
-    SetProp(P_NAME, "Helm");
-    SetProp(P_WEAR_MSG,
-     ({"Du stuelpst die @WEN2 ueber.", 
-       "@WER1 stuelpt sich @WENU2 ueber."}));
+DEFINIERT IN
+============
 
-    -> beim Anziehe durch Urk:
-       Urk bekommt: Du stuelpst dir den Helm ueber.
-       Der Raum:    Urk stuelpt sich einen Helm ueber.
+   /sys/armour.h
 
-    SetProp(P_WEAR_MSG,
-     ({"Als Du Dir den langen Mantel ueberziehst, steckst Du erstmal "
-       "mit Deinem dicken Schaedel fest. Doch nach einem kraeftigen "
-       "Ruck bist Du endlich durch und siehst wieder etwas.",
-       "@WER1 zieht sich einen langen Mantel ueber und bleibt "
-       "prompt mit dem dicken Schaedel stecken. Doch nach einem "
-       "kraeftigen Ruck kann @WERQP1 wieder etwas sehen und grinst Dich "
-       "verlegen an."}));
 
-    -> beim Anziehen durch Urk:
-       Urk bekommt: Als Du Dir den langen Mantel ueberziehst, steckst Du
-		    erstmal mit Deinem dicken Schaedel fest. Doch nach einem
-		    kraeftigen Ruck bist Du endlich durch und siehst wieder
-		    etwas.
+BESCHREIBUNG
+============
 
-       Der Raum:    Urk zieht sich einen langen Mantel ueber und bleibt
-		    prompt mit dem dicken Schaedel stecken. Doch nach
-		    einem kraeftigen Ruck kann er wieder etwas sehen und
-		    grinst Dich verlegen an.
+   Zweiteiliges Array mit Meldungen, die beim Anziehen einer Ruestung oder
+   Kleidung an den Spieler und die Umgebung ausgegeben werden.
+   Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+   Umgebung. Zeilenumbrueche werden automatisch gemacht, existierende
+   jedoch beruecksichtigt.
 
-SIEHE AUCH:
-     Aehnliches: P_UNWEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
-                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
-     Funktionen: WearFunc, UnwearFunc, InformWear()
-     Sonstiges:  replace_personal(E), clothing, /std/clothing/wear.c
-                 armour, /std/armour/wear.c
+   Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+   man replace_personal()).
 
-LETZTE AeNDERUNG:
-15.02.2009
\ No newline at end of file
+   [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+    moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+    in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+    den Waffennamen.]
+
+
+BEISPIELE
+=========
+
+   SetProp(P_NAME, "Helm");
+   SetProp(P_WEAR_MSG,
+    ({"Du stuelpst die @WEN2 ueber.",
+      "@WER1 stuelpt sich @WENU2 ueber."}));
+
+   -> beim Anziehe durch Urk:
+      Urk bekommt: Du stuelpst dir den Helm ueber.
+      Der Raum:    Urk stuelpt sich einen Helm ueber.
+
+   SetProp(P_WEAR_MSG,
+    ({"Als Du Dir den langen Mantel ueberziehst, steckst Du erstmal "
+      "mit Deinem dicken Schaedel fest. Doch nach einem kraeftigen "
+      "Ruck bist Du endlich durch und siehst wieder etwas.",
+      "@WER1 zieht sich einen langen Mantel ueber und bleibt "
+      "prompt mit dem dicken Schaedel stecken. Doch nach einem "
+      "kraeftigen Ruck kann @WERQP1 wieder etwas sehen und grinst Dich "
+      "verlegen an."}));
+
+   -> beim Anziehen durch Urk:
+      Urk bekommt: Als Du Dir den langen Mantel ueberziehst, steckst Du
+                   erstmal mit Deinem dicken Schaedel fest. Doch nach einem
+                   kraeftigen Ruck bist Du endlich durch und siehst wieder
+                   etwas.
+
+      Der Raum:    Urk zieht sich einen langen Mantel ueber und bleibt
+                   prompt mit dem dicken Schaedel stecken. Doch nach
+                   einem kraeftigen Ruck kann er wieder etwas sehen und
+                   grinst Dich verlegen an.
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_UNWEAR_MSG, P_WIELD_MSG, P_UNWIELD_MSG
+               P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+   Funktionen: WearFunc, UnwearFunc, InformWear()
+   Sonstiges:  replace_personal(E), clothing, /std/clothing/wear.c
+               armour, /std/armour/wear.c
+
+
+LETZTE AeNDERUNG
+================
+
+15.02.2009
diff --git a/doc/props/P_WEIGHT b/doc/props/P_WEIGHT
index 22af5f0..4c37e46 100644
--- a/doc/props/P_WEIGHT
+++ b/doc/props/P_WEIGHT
@@ -1,26 +1,43 @@
-NAME:
-    P_WEIGHT                      "weight"                      
 
-DEFINIERT IN:
-    /sys/thing/restrictions.h
+P_WEIGHT
+********
 
-BESCHREIBUNG:
 
-     - Objekte
-       Das Gewicht eines Objetes in Gramm.
+NAME
+====
 
-     - Speisen
-       Gewicht einer Portion der Speise.
-       
-BEMERKUNGEN:
-     In tragbaren Speisen (erben von /std/food) setzt man mit SetProp
-     das Gewicht _einer_ Portion. Per QueryProp erhaelt man aber das
-     Gesamtgewicht der Speise inclusive des eventuell vorhandenen Behaelters.
-     Das Gewicht des Behaelters wird dabei aus P_EMPTY_PROPS[P_WEIGHT]
-     gelesen.
-     
-SIEHE AUCH:
-     Speisen: wiz/food, P_EMPTY_PROPS
+   P_WEIGHT                      "weight"
 
-------------------------------------------------------------------------------
-Last modified: Thu Oct 28 12:15:00 2010 by Caldra
\ No newline at end of file
+
+DEFINIERT IN
+============
+
+   /sys/thing/restrictions.h
+
+
+BESCHREIBUNG
+============
+
+   - Objekte
+     Das Gewicht eines Objetes in Gramm.
+
+   - Speisen
+     Gewicht einer Portion der Speise.
+
+
+BEMERKUNGEN
+===========
+
+   In tragbaren Speisen (erben von /std/food) setzt man mit SetProp
+   das Gewicht _einer_ Portion. Per QueryProp erhaelt man aber das
+   Gesamtgewicht der Speise inclusive des eventuell vorhandenen Behaelters.
+   Das Gewicht des Behaelters wird dabei aus P_EMPTY_PROPS[P_WEIGHT]
+   gelesen.
+
+
+SIEHE AUCH
+==========
+
+   Speisen: wiz/food, P_EMPTY_PROPS
+
+Last modified: Thu Oct 28 12:15:00 2010 by Caldra
diff --git a/doc/props/P_WEIGHT_PERCENT b/doc/props/P_WEIGHT_PERCENT
index 7bb1ad3..a4d0506 100644
--- a/doc/props/P_WEIGHT_PERCENT
+++ b/doc/props/P_WEIGHT_PERCENT
@@ -1,25 +1,47 @@
-NAME:
-    P_WEIGHT_PERCENT              "weight_percent"              
 
-DEFINIERT IN:
-    /sys/properties.h
+P_WEIGHT_PERCENT
+****************
 
-BESCHREIBUNG:
-     Diese Property gibt an, wieviel Prozent des Gewichts des Inhaltes
-     "nach aussen" wiedergegeben werden.
 
-BEMERKUNGEN:
-     Alle Werte die < 50% liegen sollten sehr gut begruendet und mit Vor-
-     sicht verwendet werden. Hier koennten dann zum Beispiel P_MAX_OBJECTS
-     auf einen kleinen Wert begrenzt werden.
+NAME
+====
 
-     Container die hier einen Wert ueber dem des Postpakets haben, sollten
-     auch schwer zu erreichen sein. Auf jeden Fall mit dem Regionsmagier
-     besprechen!
+   P_WEIGHT_PERCENT              "weight_percent"
 
-BEISPIELE:
-     Um sich zu orientieren kann das Postpaket von Loco als Beispiel hin-
-     zugezogen werden (/p/service/loco/obj/parcel).
 
-SIEHE AUCH:
-     P_MAX_OBJECTS, P_MAX_WEIGHT, P_LIGHT_TRANSPARENCY, container
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property gibt an, wieviel Prozent des Gewichts des Inhaltes
+   "nach aussen" wiedergegeben werden.
+
+
+BEMERKUNGEN
+===========
+
+   Alle Werte die < 50% liegen sollten sehr gut begruendet und mit Vor-
+   sicht verwendet werden. Hier koennten dann zum Beispiel P_MAX_OBJECTS
+   auf einen kleinen Wert begrenzt werden.
+
+   Container die hier einen Wert ueber dem des Postpakets haben, sollten
+   auch schwer zu erreichen sein. Auf jeden Fall mit dem Regionsmagier
+   besprechen!
+
+
+BEISPIELE
+=========
+
+   Um sich zu orientieren kann das Postpaket von Loco als Beispiel hin-
+   zugezogen werden (/p/service/loco/obj/parcel).
+
+
+SIEHE AUCH
+==========
+
+   P_MAX_OBJECTS, P_MAX_WEIGHT, P_LIGHT_TRANSPARENCY, container
diff --git a/doc/props/P_WEIGHT_PER_UNIT b/doc/props/P_WEIGHT_PER_UNIT
index 2796b7b..c777b65 100644
--- a/doc/props/P_WEIGHT_PER_UNIT
+++ b/doc/props/P_WEIGHT_PER_UNIT
@@ -1,13 +1,29 @@
-NAME:
-    P_WEIGHT_PER_UNIT             "weight_per_unit"             
 
-DEFINIERT IN:
-    /sys/properties.h
+P_WEIGHT_PER_UNIT
+*****************
 
-BESCHREIBUNG:
-     Gewicht in Gramm pro Untereinheit.
 
-BEMERKUNGEN:
-     Deprecated. Bitte SetGramsPerUnits() (U_GPU) benutzen.
+NAME
+====
+
+   P_WEIGHT_PER_UNIT             "weight_per_unit"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Gewicht in Gramm pro Untereinheit.
+
+
+BEMERKUNGEN
+===========
+
+   Deprecated. Bitte SetGramsPerUnits() (U_GPU) benutzen.
 
 25.Aug 2015 Gloinson
diff --git a/doc/props/P_WIELDED b/doc/props/P_WIELDED
index bce8580..26bcff7 100644
--- a/doc/props/P_WIELDED
+++ b/doc/props/P_WIELDED
@@ -1,21 +1,37 @@
+
 P_WIELDED
+*********
 
-NAME:
-     P_WIELDED "wielded"
 
-DEFINIERT IN:
-     <weapon.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Ist diese Property gesetzt, dann ist die Waffe gerade gezueckt. Der
-     Traeger ist in der Property vermerkt.
+   P_WIELDED "wielded"
 
-BEMERKUNGEN:
-     Diese Property laesst sich nur abfragen!
 
-SIEHE AUCH:
-     /std/weapon.c
-     P_WEAPON
+DEFINIERT IN
+============
 
-----------------------------------------------------------------------------
-Last modified: 2015-Jul-11, Arathorn 
+   <weapon.h>
+
+
+BESCHREIBUNG
+============
+
+   Ist diese Property gesetzt, dann ist die Waffe gerade gezueckt. Der
+   Traeger ist in der Property vermerkt.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property laesst sich nur abfragen!
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon.c
+   P_WEAPON
+
+Last modified: 2015-Jul-11, Arathorn
diff --git a/doc/props/P_WIELD_FUNC b/doc/props/P_WIELD_FUNC
index fac481b..fbe49a7 100644
--- a/doc/props/P_WIELD_FUNC
+++ b/doc/props/P_WIELD_FUNC
@@ -1,22 +1,38 @@
+
 P_WIELD_FUNC
+************
 
-NAME:
-     P_WIELD_FUNC "wield_func"
 
-DEFINIERT IN:
-     <weapon.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Falls ein Objekt eine WieldFunc() fuer die Waffe definiert, so muss
-     dieses Objekt in dieser Property eingetragen werden.
+   P_WIELD_FUNC "wield_func"
 
-     Die Auswertung dieser Property erfolgt in wield_me().
 
-BEISPIELE:
-     Siehe das Beispiel zu WieldFunc()
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     /std/weapon.c, WieldFunc()
+   <weapon.h>
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   Falls ein Objekt eine WieldFunc() fuer die Waffe definiert, so muss
+   dieses Objekt in dieser Property eingetragen werden.
+
+   Die Auswertung dieser Property erfolgt in wield_me().
+
+
+BEISPIELE
+=========
+
+   Siehe das Beispiel zu WieldFunc()
+
+
+SIEHE AUCH
+==========
+
+   /std/weapon.c, WieldFunc()
+
 Last modified: Sun May 19 15:40:02 1996 by Wargon
diff --git a/doc/props/P_WIELD_MSG b/doc/props/P_WIELD_MSG
index 357a304..fa9dafc 100644
--- a/doc/props/P_WIELD_MSG
+++ b/doc/props/P_WIELD_MSG
@@ -1,57 +1,74 @@
+
 P_WIELD_MSG
-NAME:
-     P_WIELD_MSG                       "wield_msg" 
+***********
 
-DEFINIERT IN:
-     /sys/weapon.h
 
-BESCHREIBUNG:
+NAME
+====
 
-     Zweiteiliges Array mit Meldungen, die beim Zuecken einer Waffe an den
-     Spieler und die Umgebung ausgegeben werden.
-     Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
-     Umgebung.  Zeilenumbrueche werden automatisch gemacht, existierende
-     jedoch beruecksichtigt.
+   P_WIELD_MSG                       "wield_msg"
 
-     Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
-     man replace_personal()).
 
-     [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
-      moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
-      in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
-      den Waffennamen.]
+DEFINIERT IN
+============
 
-BEISPIELE:
-    SetProp(P_NAME, "Streitkolben");
-    SetProp(P_WIELD_MSG,
-     ({"Du zueckst @WEN2 und stoesst einen markerschuetternden Schrei aus.", 
-       "@WER1 zueckt @WENU2 und stoesst einen markerschuetternden Schrei "
-       "aus." }));
+   /sys/weapon.h
 
-    -> beim Zuecken durch Urk:
-       Urk bekommt: Du zueckst den Streitkolben und stoesst einen
-		    markerschuetternden Schrei aus.
-       Der Raum:    Urk zueckt einen Streitkolben und stoesst einen
-		    markerschuetternden Schrei aus.
 
-    SetProp(P_WIELD_MSG,
-     ({"Du zueckst den klobigen Streitkolben und fuchtelst damit "
-       "wild vor Deiner Nase herum.",
-       "@WER1 zueckt einen klobigen Streitkolben und fuchtelt "
-       "damit wild vor der eigenen Nase herum. Hoffentlich verletzt "
-       "@WERQP1 sich dabei nicht ..."}));
+BESCHREIBUNG
+============
 
-    -> beim Zuecken durch Urk:
-       Urk bekommt: Du zueckst den klobigen Streitkolben und fuchtelst
-                    damit wild vor Deiner Nase herum.
-       Der Raum:    Urk zueckt einen klobigen Streitkolben und fuchtelt
-		    damit wild vor der eigenen Nase herum. Hoffentlich
-                    verletzt er sich dabei nicht ...
+   Zweiteiliges Array mit Meldungen, die beim Zuecken einer Waffe an den
+   Spieler und die Umgebung ausgegeben werden.
+   Der erste Eintrag geht an den Spieler, der zweite Eintrag an die
+   Umgebung.  Zeilenumbrueche werden automatisch gemacht, existierende
+   jedoch beruecksichtigt.
 
-SIEHE AUCH:
-     Aehnliches: P_UNWIELD_MSG, P_WEAR_MSG, P_UNWEAR_MSG
-                 P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
-     Funktionen: UnwieldFunc, WieldFunc
-     Sonstiges:  replace_personal(E), /std/weapon/combat.c
+   Platzhalter fuer Spieler ist @WExxx1, fuer die Waffe @WExxx2 (siehe
+   man replace_personal()).
+
+   [Wegen Abwaertskompatibilitaet ist auch noch der Platzhalter %s
+    moeglich, wobei in der eigenen Meldung %s fuer den Waffennamen steht,
+    in der an den Raum das erste %s fuer den Spielernamen, das zweite fuer
+    den Waffennamen.]
+
+
+BEISPIELE
+=========
+
+   SetProp(P_NAME, "Streitkolben");
+   SetProp(P_WIELD_MSG,
+    ({"Du zueckst @WEN2 und stoesst einen markerschuetternden Schrei aus.",
+      "@WER1 zueckt @WENU2 und stoesst einen markerschuetternden Schrei "
+      "aus." }));
+
+   -> beim Zuecken durch Urk:
+      Urk bekommt: Du zueckst den Streitkolben und stoesst einen
+                   markerschuetternden Schrei aus.
+      Der Raum:    Urk zueckt einen Streitkolben und stoesst einen
+                   markerschuetternden Schrei aus.
+
+   SetProp(P_WIELD_MSG,
+    ({"Du zueckst den klobigen Streitkolben und fuchtelst damit "
+      "wild vor Deiner Nase herum.",
+      "@WER1 zueckt einen klobigen Streitkolben und fuchtelt "
+      "damit wild vor der eigenen Nase herum. Hoffentlich verletzt "
+      "@WERQP1 sich dabei nicht ..."}));
+
+   -> beim Zuecken durch Urk:
+      Urk bekommt: Du zueckst den klobigen Streitkolben und fuchtelst
+                   damit wild vor Deiner Nase herum.
+      Der Raum:    Urk zueckt einen klobigen Streitkolben und fuchtelt
+                   damit wild vor der eigenen Nase herum. Hoffentlich
+                   verletzt er sich dabei nicht ...
+
+
+SIEHE AUCH
+==========
+
+   Aehnliches: P_UNWIELD_MSG, P_WEAR_MSG, P_UNWEAR_MSG
+               P_DROP_MSG, P_PUT_MSG, P_GIVE_MSG, P_PICK_MSG
+   Funktionen: UnwieldFunc, WieldFunc
+   Sonstiges:  replace_personal(E), /std/weapon/combat.c
 
 29. Maerz 2004 Gloinson
diff --git a/doc/props/P_WIMPY b/doc/props/P_WIMPY
index 97633fa..d0ba078 100644
--- a/doc/props/P_WIMPY
+++ b/doc/props/P_WIMPY
@@ -1,15 +1,30 @@
-NAME:
-    P_WIMPY                       "wimpy"                       
 
-DEFINIERT IN:
-    /sys/properties.h
+P_WIMPY
+*******
 
-BESCHREIBUNG:
-     Numerischer Wert. Das Lebewesen flieht, wenn die Lebenspunkte
-     unter diesen Wert sinken.
 
-SIEHE AUCH:
-     P_WIMPY_DIRECTION
+NAME
+====
 
-----------------------------------------------------------------------------
+   P_WIMPY                       "wimpy"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Numerischer Wert. Das Lebewesen flieht, wenn die Lebenspunkte
+   unter diesen Wert sinken.
+
+
+SIEHE AUCH
+==========
+
+   P_WIMPY_DIRECTION
+
 Letzte Aenderung: Mon Feb 12 17:50:47 2001 von Tilly
diff --git a/doc/props/P_WIMPY_DIRECTION b/doc/props/P_WIMPY_DIRECTION
index 57d2f01..11bedeb 100644
--- a/doc/props/P_WIMPY_DIRECTION
+++ b/doc/props/P_WIMPY_DIRECTION
@@ -1,22 +1,40 @@
-NAME:
-    P_WIMPY_DIRECTION             "wimpy_dir"                   
 
-DEFINIERT IN:
-    /sys/properties.h
+P_WIMPY_DIRECTION
+*****************
 
-BESCHREIBUNG:
-     Fluchtrichtung eines Spielers oder NPCs
 
-BEMERKUNGEN:
-     Die Fluchtrichtung kann nicht nur ein Ausgang (sueden, osten, ...)
-     sein, sondern auch ein Kommando, welches der Spieler beim Anschlagen
-     ausfuehrt (z.b. <kletter seil hoch> oder <rufe Elender Mist!>).
+NAME
+====
 
-     Ausgefuehrt wird die Fluchtrichtung per command(), wenn die LP des 
-     Lebewesens unter die mit <vorsicht> angegebe LP-Grenze sinkt.
+   P_WIMPY_DIRECTION             "wimpy_dir"
 
-SIEHE AUCH:
-     P_WIMPY
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Fluchtrichtung eines Spielers oder NPCs
+
+
+BEMERKUNGEN
+===========
+
+   Die Fluchtrichtung kann nicht nur ein Ausgang (sueden, osten, ...)
+   sein, sondern auch ein Kommando, welches der Spieler beim Anschlagen
+   ausfuehrt (z.b. <kletter seil hoch> oder <rufe Elender Mist!>).
+
+   Ausgefuehrt wird die Fluchtrichtung per command(), wenn die LP des
+   Lebewesens unter die mit <vorsicht> angegebe LP-Grenze sinkt.
+
+
+SIEHE AUCH
+==========
+
+   P_WIMPY
+
 Letzte Aenderung: Mon Feb 12 17:46:47 2001 von Tilly
diff --git a/doc/props/P_WIZ_DEBUG b/doc/props/P_WIZ_DEBUG
index cf7ac21..0bea2ad 100644
--- a/doc/props/P_WIZ_DEBUG
+++ b/doc/props/P_WIZ_DEBUG
@@ -1,20 +1,37 @@
-NAME:
-    P_WIZ_DEBUG                    "std_p_wizdebug"
 
-DEFINIERT IN:
-    /sys/player/comm.h
+P_WIZ_DEBUG
+***********
 
-BESCHREIBUNG:
-     Gesetzt, wenn der Magier (oder ein Testspieler) Debugmeldungen wahrnehmen
-     moechte.
-     Debugmeldungen sind Nachrichten, die mit dem Typ MT_DEBUG an ReceiveMsg()
-     uebergeben werden.
-     
-     Die Werte von P_WIZ_DEBUG sind zur Zeit 0 oder 1, das kann sich aber
-     jederzeit aendern.
-     Magier aendern diese Prop bitte ueber "mschau".
 
-SIEHE AUCH:
-     mschau
-     P_WANTS_TO_LEARN
+NAME
+====
 
+   P_WIZ_DEBUG                    "std_p_wizdebug"
+
+
+DEFINIERT IN
+============
+
+   /sys/player/comm.h
+
+
+BESCHREIBUNG
+============
+
+   Gesetzt, wenn der Magier (oder ein Testspieler) Debugmeldungen wahrnehmen
+   moechte.
+   Debugmeldungen sind Nachrichten, die mit dem Typ MT_DEBUG an ReceiveMsg()
+   uebergeben werden.
+
+
+
+   Die Werte von P_WIZ_DEBUG sind zur Zeit 0 oder 1, das kann sich aber
+   jederzeit aendern.
+   Magier aendern diese Prop bitte ueber "mschau".
+
+
+SIEHE AUCH
+==========
+
+   mschau
+   P_WANTS_TO_LEARN
diff --git a/doc/props/P_WORN b/doc/props/P_WORN
index 7afd03e..999ab76 100644
--- a/doc/props/P_WORN
+++ b/doc/props/P_WORN
@@ -1,40 +1,63 @@
+
 P_WORN
+******
 
-NAME:
-     P_WORN "worn"
 
-DEFINIERT IN:
-     <armour.h>
+NAME
+====
 
-BESCHREIBUNG:
-     Mittels dieser Property laesst sich ermitteln, ob eine Ruestung bzw. 
-     Kleidung derzeit getragen wird und wenn ja, von wem.
+   P_WORN "worn"
 
-     Entweder enthaelt die Property den Wert 0, oder sie enthaelt den
-     Traeger der Ruestung / Kleidung (als Objekt).
 
-BEMERKUNGEN:
-     Diese Property laesst sich nur abfragen!
+DEFINIERT IN
+============
 
-BEISPIELE:
-     Eine DefendFunc() koennte dem Traeger der Ruestung wie folgt etwas
-     mitteilen:
+   <armour.h>
 
-     // Die Ruestung gibt Schutz gegen Feuer
-     int DefendFunc(string *dtyp, mixed spell, object enemy)
-     {
-       if (member(dtyp, DT_FIRE) != -1) {
-         // P_WORN ist auf jeden Fall gesetzt, da sonst die
-         // DefendFunc ueberhaupt nicht aufgerufen wuerde!
-         tell_object(QueryProp(P_WORN),
-           "Die Flammen zuengeln nur leicht ueber die Ruestung.\n");
-         return 10;
-       }
-       return 0;
+
+BESCHREIBUNG
+============
+
+   Mittels dieser Property laesst sich ermitteln, ob eine Ruestung bzw.
+   Kleidung derzeit getragen wird und wenn ja, von wem.
+
+   Entweder enthaelt die Property den Wert 0, oder sie enthaelt den
+   Traeger der Ruestung / Kleidung (als Objekt).
+
+
+BEMERKUNGEN
+===========
+
+   Diese Property laesst sich nur abfragen!
+
+
+BEISPIELE
+=========
+
+   Eine DefendFunc() koennte dem Traeger der Ruestung wie folgt etwas
+   mitteilen:
+
+   // Die Ruestung gibt Schutz gegen Feuer
+   int DefendFunc(string *dtyp, mixed spell, object enemy)
+   {
+     if (member(dtyp, DT_FIRE) != -1) {
+       // P_WORN ist auf jeden Fall gesetzt, da sonst die
+       // DefendFunc ueberhaupt nicht aufgerufen wuerde!
+       tell_object(QueryProp(P_WORN),
+         "Die Flammen zuengeln nur leicht ueber die Ruestung.\n");
+       return 10;
      }
+     return 0;
+   }
 
-SIEHE AUCH:
-     clothing, /std/clothing.c, armour, /std/armour.c
 
-LETZTE AeNDERUNG:
-15.02.2009, Zesstra
\ No newline at end of file
+SIEHE AUCH
+==========
+
+   clothing, /std/clothing.c, armour, /std/armour.c
+
+
+LETZTE AeNDERUNG
+================
+
+15.02.2009, Zesstra
diff --git a/doc/props/P_XP b/doc/props/P_XP
index 097ec65..649f4e0 100644
--- a/doc/props/P_XP
+++ b/doc/props/P_XP
@@ -1,59 +1,81 @@
-NAME:
-     P_XP                    "xp"
 
-DEFINIERT IN:
-     /sys/living/life.h
+P_XP
+****
 
-BESCHREIBUNG:
-     Diese Property enthaelt die Anzahl der Erfahrungspunkte, die ein
-     Lebewesen erreicht hat. Dies geschieht insbesondere durch
-     Kampfhandlungen, wobei es sowohl fuer Einzelschlaege als auch fuer
-     das Toeten eines Opfers Punkte gibt.
 
-     Bei einzelnen Schlaegen ist die Vergabe von Erfahrungspunkten davon
-     abhaengig, wie stark man das Opfer getroffen hat, und welche
-     Gesamtwaffenklasse es hat (damage*P_TOTAL_WC/10).
+NAME
+====
 
-     Beim Todesschlag erhaelt man zusaetzlich die Erfahrungspunkte des
-     Opfers geteilt durch 100 (P_XP/100). Dieser Wert wird allerdings
-     gegebenenfalls auf ein Team aufgeteilt, sofern der Angreifer sich in
-     einem solchigen befindet.
+   P_XP                    "xp"
 
-BEISPIEL:
-     NPC's gibt man im allgemeinen einen levelabhaengigen Sockelwert an
-     Erfahrungspunkten mit, da sie nicht allzuoft selbst Gegner toeten
-     und somit kaum die Moeglichkeit haben, diese Punkte selbst
-     anzusammeln. Trotzdem sollen sie ja dem Spieler eine gewisse Anzahl
-     an Erfahrungspunkten liefern, wenn sie getoetet werden:
 
-       include "/sys/living/life.h"
-       inherit "std/npc";
-       void create() {
-         ...
-         SetProp(P_XP,25000000);
-       }
+DEFINIERT IN
+============
 
-     Beim Toeten gibt es nun 25.000.000/100 = 250.000 Erfahrungspunkte.
-     Damit wird der NPC sogar automatisch fuer die Vergabe von
-     Erstkillstufenpunkten vorgesehen.
+   /sys/living/life.h
 
-     Die Funktion create_default_npc() setzt P_XP und andere Eigenschaften
-     auf geeignete Werte.
 
-BEMERKUNGEN:
-     Die Vergabe von Erstkillstufenpunkten kann man ueber die Property
-     P_NO_SCORE unterbinden, die Vergabe von Erfahrungspunkten ueber
-     P_NO_XP. Automatisch werden Lebewesen fuer Erstkillstufenpunkte
-     vorgesehen, sofern sie eine der folgenden Grenzen ueberschritten
-     haben:
-       SCORE_LOW_MARK:  200000 (1 Stufenpunkt)
-       SCORE_HIGH_MARK: 600000 (2 Stufenpunkte)
-     Definiert sind die Konstanten in "/secure/scoremaster.h".
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-     Funktionen:  AddExp(), do_damage()
-     Verwandt:    P_NO_XP, P_LAST_XP
-     Sonstiges:   P_NO_SCORE, create_default_npc()
-                  P_TOTAL_WC
+   Diese Property enthaelt die Anzahl der Erfahrungspunkte, die ein
+   Lebewesen erreicht hat. Dies geschieht insbesondere durch
+   Kampfhandlungen, wobei es sowohl fuer Einzelschlaege als auch fuer
+   das Toeten eines Opfers Punkte gibt.
 
-14.Feb 2007 Gloinson
\ No newline at end of file
+   Bei einzelnen Schlaegen ist die Vergabe von Erfahrungspunkten davon
+   abhaengig, wie stark man das Opfer getroffen hat, und welche
+   Gesamtwaffenklasse es hat (damage*P_TOTAL_WC/10).
+
+   Beim Todesschlag erhaelt man zusaetzlich die Erfahrungspunkte des
+   Opfers geteilt durch 100 (P_XP/100). Dieser Wert wird allerdings
+   gegebenenfalls auf ein Team aufgeteilt, sofern der Angreifer sich in
+   einem solchigen befindet.
+
+
+BEISPIEL
+========
+
+   NPC's gibt man im allgemeinen einen levelabhaengigen Sockelwert an
+   Erfahrungspunkten mit, da sie nicht allzuoft selbst Gegner toeten
+   und somit kaum die Moeglichkeit haben, diese Punkte selbst
+   anzusammeln. Trotzdem sollen sie ja dem Spieler eine gewisse Anzahl
+   an Erfahrungspunkten liefern, wenn sie getoetet werden:
+
+     include "/sys/living/life.h"
+     inherit "std/npc";
+     void create() {
+       ...
+       SetProp(P_XP,25000000);
+     }
+
+   Beim Toeten gibt es nun 25.000.000/100 = 250.000 Erfahrungspunkte.
+   Damit wird der NPC sogar automatisch fuer die Vergabe von
+   Erstkillstufenpunkten vorgesehen.
+
+   Die Funktion create_default_npc() setzt P_XP und andere Eigenschaften
+   auf geeignete Werte.
+
+
+BEMERKUNGEN
+===========
+
+   Die Vergabe von Erstkillstufenpunkten kann man ueber die Property
+   P_NO_SCORE unterbinden, die Vergabe von Erfahrungspunkten ueber
+   P_NO_XP. Automatisch werden Lebewesen fuer Erstkillstufenpunkte
+   vorgesehen, sofern sie eine der folgenden Grenzen ueberschritten
+   haben:
+     SCORE_LOW_MARK:  200000 (1 Stufenpunkt)
+     SCORE_HIGH_MARK: 600000 (2 Stufenpunkte)
+   Definiert sind die Konstanten in "/secure/scoremaster.h".
+
+
+SIEHE AUCH
+==========
+
+   Funktionen:  AddExp(), do_damage()
+   Verwandt:    P_NO_XP, P_LAST_XP
+   Sonstiges:   P_NO_SCORE, create_default_npc()
+                P_TOTAL_WC
+
+14.Feb 2007 Gloinson
diff --git a/doc/props/P_X_ATTR_MOD b/doc/props/P_X_ATTR_MOD
index c6a8bda..14ab9a4 100644
--- a/doc/props/P_X_ATTR_MOD
+++ b/doc/props/P_X_ATTR_MOD
@@ -1,46 +1,68 @@
-NAME:
-    P_X_ATTR_MOD                  "extern_attributes_modifier"
 
-DEFINIERT IN:
-    /sys/living/attributes.h
+P_X_ATTR_MOD
+************
 
-BESCHREIBUNG:
-    Mapping, das die Attribute des Spielers veraendert, der das Objekt bei
-    sich hat.
 
-    Zu beachten:
-    Diese Property bitte _ausschliesslich_ mit SetProp aendern, weil damit
-    gleichzeitig UpdateAttributes() im Lebewesen aufgerufen und ggf. das
-    Objekt als Statmodifizierer registriert wird.
+NAME
+====
 
-    Diese Property ist fuer Krankheiten, Flueche etc. gedacht. Bei
-    Waffen/Ruestungen, die die Attribute beeinflussen sollen, verwendet
-    man besser P_M_ATTR_MOD.
+   P_X_ATTR_MOD                  "extern_attributes_modifier"
 
-    P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
-    positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
-    CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.
 
-BEMERKUNGEN:
-    Die Methode /std/thing/restrictions::_set_extern_attributes_modifier()
-    benachrichtigt tragende Livings ueber Aenderungen.
-    Bitte beim "Loeschen" der Prop nicht den Wert des jew. Attributes im
-    uebergebenen Mapping als 0 uebergeben, sondern das Key/Werte-Paar ganz
-    entfernen und bzw. ein leeres Mapping oder 0 uebergeben.
+DEFINIERT IN
+============
 
-BEISPIEL:
-    // Dem Lebewesen, das das Objekt bei sich hat, wird 2 von A_INT abgezogen
-    SetProp(P_X_ATTR_MOD,([A_INT:-2]));
+   /sys/living/attributes.h
 
-    // Stats wiederherstellen:
-    SetProp(P_X_ATTR_MOD,([]));
 
-SIEHE AUCH:
-    QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
-    SetAttribute(), SetRealAttribute(), UpdateAttributes(),
-    SetTimedAttrModifier(), QueryTimedAttrModifier(),
-    DeleteTimedAttrModifier(),
-    P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
-    P_TIMED_ATTR_MOD, P_M_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+BESCHREIBUNG
+============
+
+   Mapping, das die Attribute des Spielers veraendert, der das Objekt bei
+   sich hat.
+
+   Zu beachten:
+   Diese Property bitte _ausschliesslich_ mit SetProp aendern, weil damit
+   gleichzeitig UpdateAttributes() im Lebewesen aufgerufen und ggf. das
+   Objekt als Statmodifizierer registriert wird.
+
+   Diese Property ist fuer Krankheiten, Flueche etc. gedacht. Bei
+   Waffen/Ruestungen, die die Attribute beeinflussen sollen, verwendet
+   man besser P_M_ATTR_MOD.
+
+   P_X_ATTR_MOD und P_M_ATTR_MOD duerfen einen gemeinsamen kumulierten
+   positiven Grenzwert nicht ueberschreiten. Dieser Grenzwert,
+   CUMULATIVE_ATTR_LIMIT, ist in /sys/living/attributes.h definiert.
+
+
+BEMERKUNGEN
+===========
+
+   Die Methode /std/thing/restrictions::_set_extern_attributes_modifier()
+   benachrichtigt tragende Livings ueber Aenderungen.
+   Bitte beim "Loeschen" der Prop nicht den Wert des jew. Attributes im
+   uebergebenen Mapping als 0 uebergeben, sondern das Key/Werte-Paar ganz
+   entfernen und bzw. ein leeres Mapping oder 0 uebergeben.
+
+
+BEISPIEL
+========
+
+   // Dem Lebewesen, das das Objekt bei sich hat, wird 2 von A_INT abgezogen
+   SetProp(P_X_ATTR_MOD,([A_INT:-2]));
+
+   // Stats wiederherstellen:
+   SetProp(P_X_ATTR_MOD,([]));
+
+
+SIEHE AUCH
+==========
+
+   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+   SetTimedAttrModifier(), QueryTimedAttrModifier(),
+   DeleteTimedAttrModifier(),
+   P_X_HEALTH_MOD, P_M_HEALTH_MOD, P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS,
+   P_TIMED_ATTR_MOD, P_M_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
 
 02.02.2016, Gloinson
diff --git a/doc/props/P_X_HEALTH_MOD b/doc/props/P_X_HEALTH_MOD
index d78d2bf..69aafab 100644
--- a/doc/props/P_X_HEALTH_MOD
+++ b/doc/props/P_X_HEALTH_MOD
@@ -1,36 +1,60 @@
-NAME:
-    P_X_HEALTH_MOD                  "extern_health_modifier"
 
-DEFINIERT IN:
-    /sys/living/attributes.h
+P_X_HEALTH_MOD
+**************
 
-BESCHREIBUNG:
-    Mapping, mit dem die maximalen Lebenspunkte und Magiepunkte eines
-    Spielers veraendert werden, der dieses Objekt bei sich traegt.
 
-    Zu beachten: Diese Property bitte _ausschliesslich_ mit SetProp
-    aendern, weil damit gleichzeitig UpdateAttributes() im
-    Lebewesen aufgerufen und ggf. das Objekt als Statmodifizierer 
-    registriert wird.
+NAME
+====
 
-    Bei Ruestungen/Waffen, die diese Wirkung entfalten sollen, verwendet
-    man besser P_M_HEALTH_MOD.
+   P_X_HEALTH_MOD                  "extern_health_modifier"
 
-BEMERKUNGEN:
-    Bitte bei "Loeschen" der Prop nicht den Wert des jew. Attributes im 
-    uebergebenen Mapping als 0 uebergeben, sondern das Key/Werte-Paar ganz 
-    entfernen und ggf. ein leeres Mapping oder 0 uebergeben.
 
-BEISPIEL:
-    // Dem Spieler, der das Objekt bei sich traegt, wird P_MAX_HP um 5
-    // erhoeht und P_MAX_SP um 5 erniedrigt.
-    SetProp(P_X_HEALTH_MOD,([P_HP:5,P_SP:-5]));
-    // Stats wiederherstellen:
-    SetProp(P_X_HEALTH_MOD,([]);
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-    P_M_HEALTH_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, balance
+   /sys/living/attributes.h
 
-LETZTE AeNDERUNG:
-    Sat, 06.02.1999, 14:00:00 von Paracelsus
 
+BESCHREIBUNG
+============
+
+   Mapping, mit dem die maximalen Lebenspunkte und Magiepunkte eines
+   Spielers veraendert werden, der dieses Objekt bei sich traegt.
+
+   Zu beachten: Diese Property bitte _ausschliesslich_ mit SetProp
+   aendern, weil damit gleichzeitig UpdateAttributes() im
+   Lebewesen aufgerufen und ggf. das Objekt als Statmodifizierer
+   registriert wird.
+
+   Bei Ruestungen/Waffen, die diese Wirkung entfalten sollen, verwendet
+   man besser P_M_HEALTH_MOD.
+
+
+BEMERKUNGEN
+===========
+
+   Bitte bei "Loeschen" der Prop nicht den Wert des jew. Attributes im
+   uebergebenen Mapping als 0 uebergeben, sondern das Key/Werte-Paar ganz
+   entfernen und ggf. ein leeres Mapping oder 0 uebergeben.
+
+
+BEISPIEL
+========
+
+   // Dem Spieler, der das Objekt bei sich traegt, wird P_MAX_HP um 5
+   // erhoeht und P_MAX_SP um 5 erniedrigt.
+   SetProp(P_X_HEALTH_MOD,([P_HP:5,P_SP:-5]));
+   // Stats wiederherstellen:
+   SetProp(P_X_HEALTH_MOD,([]);
+
+
+SIEHE AUCH
+==========
+
+   P_M_HEALTH_MOD, P_X_ATTR_MOD, P_M_ATTR_MOD, balance
+
+
+LETZTE AeNDERUNG
+================
+
+   Sat, 06.02.1999, 14:00:00 von Paracelsus
diff --git a/doc/props/P_ZAP_MSG b/doc/props/P_ZAP_MSG
index fbabff4..6f9c7ce 100644
--- a/doc/props/P_ZAP_MSG
+++ b/doc/props/P_ZAP_MSG
@@ -1,28 +1,41 @@
+
 P_ZAP_MSG
+*********
 
-NAME:
-      P_ZAP_MSG			"zap_msg"
 
-DEFINIERT IN:
-      /sys/properties.h
+NAME
+====
 
-BESCHREIBUNG:
-      Die Property enthaelt ein dreielementiges Array mit den folgenden
-      Eintraegen:
-	  1.) Meldung, die der Magier beim Zappen bekommt.
-	  2.) Meldung, die die Spieler im Raum beim Zappen bekommen.
-	  3.) Meldung, die das Opfer beim Zappen bekommt.
+   P_ZAP_MSG                 "zap_msg"
 
-      Mit @@wer@@, @@wessen@@, ... kann der Name des Opfers und mit @@ich@@
-      der Name des Magiers in die Meldung eingewoben werden.
 
-      Die Property ist in Magiern gesetzt und gilt nur dort.
+DEFINIERT IN
+============
 
-SIEHE AUCH:
-     Tod:		die(L)
-     Todesmeldungen:	P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
-			P_ENEMY_DEATH_SEQUENCE
-     Sonstiges:		P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+   /sys/properties.h
 
-----------------------------------------------------------------------------
+
+BESCHREIBUNG
+============
+
+   Die Property enthaelt ein dreielementiges Array mit den folgenden
+   Eintraegen:
+       1.) Meldung, die der Magier beim Zappen bekommt.
+       2.) Meldung, die die Spieler im Raum beim Zappen bekommen.
+       3.) Meldung, die das Opfer beim Zappen bekommt.
+
+   Mit @@wer@@, @@wessen@@, ... kann der Name des Opfers und mit @@ich@@
+   der Name des Magiers in die Meldung eingewoben werden.
+
+   Die Property ist in Magiern gesetzt und gilt nur dort.
+
+
+SIEHE AUCH
+==========
+
+   Tod:               die(L)
+   Todesmeldungen:    P_KILL_NAME, P_KILL_MSG, P_DIE_MSG, P_MURDER_MSG
+                      P_ENEMY_DEATH_SEQUENCE
+   Sonstiges:         P_CORPSE, P_NOCORPSE, /room/death/death_room.c
+
 Last modified: Wed Jan 14 19:17:06 1998 by Patryn
diff --git a/doc/props/U_REQ b/doc/props/U_REQ
index cb395db..1594c4f 100644
--- a/doc/props/U_REQ
+++ b/doc/props/U_REQ
@@ -1,63 +1,83 @@
-NAME:
-    U_REQ                         "u_req"
 
-DEFINIERT IN:
-    /sys/unit.h
+U_REQ
+*****
 
-BESCHREIBUNG:
-     Die Prop kann in Unitobjekten gesetzt werden.
-     Sie gibt die Anzahl der Einheiten an, die an der Unit manipuliert werden
-     sollen, falls mit weniger als P_AMOUNT umgegegangen werden soll.
-     
-     Die Prop wird automatisch gesetzt, wenn id() an einem Unitobjekt gerufen
-     wird und die ID grundsaetzlich zutreffend ist, die aus der ID ermittelte
-     Zahl aber kleiner als P_AMOUNT ist.
-     Sie kann auch manuell mittel SetProp() (aber nicht Set()) gesetzt werden.
 
-     U_REQ wird beim Bewegen und Zerstoeren, bei Ermittlung von Wert und
-     Gewicht beruecksichtigt.
+NAME
+====
 
-     U_REQ wird vom Unitobjekt automatisch wieder auf P_AMOUNT gesetzt, wenn
-     sich query_verb() oder debug_info(DINFO_EVAL_NUMBER) veraendert haben.
-     (DINFO_EVAL_NUMBER ist eine Zahl, die sich jedesmal erhoeht, wenn der
-      Driver eine neue Berechnung/Ausfuehrung beginnt. Diese Nummer wird fuer
-      jeden vom driver initiierten Aufruf von LPC-Code erhoeht, z.B. bei jedem
-      Kommando, call_out, heart_beat etc. Details s. debug_info().)
+   U_REQ                         "u_req"
 
-     Ebenso wird U_REQ bei der Vereinigung mit einem anderen (gleichen)
-     Objekt auf P_AMOUNT des vereinigten Objektes gesetzt.
+
+DEFINIERT IN
+============
+
+   /sys/unit.h
+
+
+BESCHREIBUNG
+============
+
+   Die Prop kann in Unitobjekten gesetzt werden.
+   Sie gibt die Anzahl der Einheiten an, die an der Unit manipuliert werden
+   sollen, falls mit weniger als P_AMOUNT umgegegangen werden soll.
+
+
+
+   Die Prop wird automatisch gesetzt, wenn id() an einem Unitobjekt gerufen
+   wird und die ID grundsaetzlich zutreffend ist, die aus der ID ermittelte
+   Zahl aber kleiner als P_AMOUNT ist.
+   Sie kann auch manuell mittel SetProp() (aber nicht Set()) gesetzt werden.
+
+   U_REQ wird beim Bewegen und Zerstoeren, bei Ermittlung von Wert und
+   Gewicht beruecksichtigt.
+
+   U_REQ wird vom Unitobjekt automatisch wieder auf P_AMOUNT gesetzt, wenn
+   sich query_verb() oder debug_info(DINFO_EVAL_NUMBER) veraendert haben.
+   (DINFO_EVAL_NUMBER ist eine Zahl, die sich jedesmal erhoeht, wenn der
+    Driver eine neue Berechnung/Ausfuehrung beginnt. Diese Nummer wird fuer
+    jeden vom driver initiierten Aufruf von LPC-Code erhoeht, z.B. bei jedem
+    Kommando, call_out, heart_beat etc. Details s. debug_info().)
+
+   Ebenso wird U_REQ bei der Vereinigung mit einem anderen (gleichen)
+   Objekt auf P_AMOUNT des vereinigten Objektes gesetzt.
 
 
 BUGS
-    Viele. Dies ist ein uebler Hack. Geht aber nicht ohne.
-    Diese Prop war endlos lang gar nicht dokumentiert. Hier beschrieben ist
-    das Verhalten, was zur Zeit vorliegt. Dies mag unterschiedlich zu dem
-    irgendwann intendierten sein.
+====
+
+   Viele. Dies ist ein uebler Hack. Geht aber nicht ohne.
+   Diese Prop war endlos lang gar nicht dokumentiert. Hier beschrieben ist
+   das Verhalten, was zur Zeit vorliegt. Dies mag unterschiedlich zu dem
+   irgendwann intendierten sein.
 
 
 BEISPIELE
-    object o = clone_object("unitobjekt");
-    o->SetProp(P_AMOUNT, 100);   // ab jetzt hat o 100 Einheiten.
-    o->move(npc, M_GET);         // ob mit 100 Einheiten wird bewegt
-    o->SetProp(U_REQ, 50);
-    o->move(anderernpc, M_GIVE); // 50 Einheiten werden bewegt, 50 verbleiben
-    (Technisch: das Objekt wird auf 50 Einheiten geaendert, bewegt und in der
-     alten Umgebung wird ein neues Objekt mit 50 Einheiten erzeugt.)
+=========
 
-    o->SetProp(U_REQ, 42);
-    o->remove(1);               // 42 Einheiten von den 50 werden zerstoert.
-    (Technisch: P_AMOUNT wird einfach um U_REQ reduziert.)
+   object o = clone_object("unitobjekt");
+   o->SetProp(P_AMOUNT, 100);   // ab jetzt hat o 100 Einheiten.
+   o->move(npc, M_GET);         // ob mit 100 Einheiten wird bewegt
+   o->SetProp(U_REQ, 50);
+   o->move(anderernpc, M_GIVE); // 50 Einheiten werden bewegt, 50 verbleiben
+   (Technisch: das Objekt wird auf 50 Einheiten geaendert, bewegt und in der
+    alten Umgebung wird ein neues Objekt mit 50 Einheiten erzeugt.)
 
-    # gib 18 muenzen an blupp
-    Hierbei wird ob->id("18 muenzen") gerufen, was U_REQ im Geldobjekt auf 18
-    setzt. Bei der Bewegung bekommt blupp daher das Objekt mit P_AMOUNT==18
-    und der Rest wird im Abgebenden neu erzeugt.
-    # gib geld an flubbel
-    Das U_REQ aus dem verherigen Kommando ist jetzt nicht mehr gueltig. Zwar
-    ist es das gleiche Kommandoverb, aber DINFO_EVAL_NUMBER ist jetzt
-    anders.
+   o->SetProp(U_REQ, 42);
+   o->remove(1);               // 42 Einheiten von den 50 werden zerstoert.
+   (Technisch: P_AMOUNT wird einfach um U_REQ reduziert.)
+
+   # gib 18 muenzen an blupp
+   Hierbei wird ob->id("18 muenzen") gerufen, was U_REQ im Geldobjekt auf 18
+   setzt. Bei der Bewegung bekommt blupp daher das Objekt mit P_AMOUNT==18
+   und der Rest wird im Abgebenden neu erzeugt.
+   # gib geld an flubbel
+   Das U_REQ aus dem verherigen Kommando ist jetzt nicht mehr gueltig. Zwar
+   ist es das gleiche Kommandoverb, aber DINFO_EVAL_NUMBER ist jetzt
+   anders.
 
 
-ZULETZT GEAeNDERT:
+ZULETZT GEAeNDERT
+=================
+
 16.01.2015, Zesstra
-
diff --git a/doc/props/gildenprops/P_GLOVE_FINGERLESS b/doc/props/gildenprops/P_GLOVE_FINGERLESS
index 64faec6..0485c9a 100644
--- a/doc/props/gildenprops/P_GLOVE_FINGERLESS
+++ b/doc/props/gildenprops/P_GLOVE_FINGERLESS
@@ -1,16 +1,30 @@
+
 P_GLOVE_FINGERLESS
+******************
 
-NAME:
-     P_GLOVE_FINGERLESS                     "fingerfreie_handschuhe"
 
-DEFINIERT IN:
-     /p/katzenkrieger/kkrieger.h
+NAME
+====
 
-BESCHREIBUNG:
-     So gekennzeichnete Handschuhe sind fingerlos und koennen
-     waehrend "krallenschlag" getragen werden.
+   P_GLOVE_FINGERLESS                     "fingerfreie_handschuhe"
 
-SIEHE AUCH:
-     Verwandt:	P_ARMOUR_TYPE, AT_GLOVE
 
-10.Okt 2006 Gloinson
\ No newline at end of file
+DEFINIERT IN
+============
+
+   /p/katzenkrieger/kkrieger.h
+
+
+BESCHREIBUNG
+============
+
+   So gekennzeichnete Handschuhe sind fingerlos und koennen
+   waehrend "krallenschlag" getragen werden.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:  P_ARMOUR_TYPE, AT_GLOVE
+
+10.Okt 2006 Gloinson
diff --git a/doc/props/gildenprops/P_Z_AUTOSHIELD b/doc/props/gildenprops/P_Z_AUTOSHIELD
index f69b9ad..994abad 100644
--- a/doc/props/gildenprops/P_Z_AUTOSHIELD
+++ b/doc/props/gildenprops/P_Z_AUTOSHIELD
@@ -1,26 +1,43 @@
+
 P_Z_AUTOSHIELD
+**************
 
-NAME:
-     P_Z_AUTOSHIELD				"z_autoshield"
 
-DEFINIERT IN:
-     /p/zauberer/wiznpc.h
+NAME
+====
 
-BESCHREIBUNG:
-     Mit dieser Property  kann man einen automatischen 
-     Schutzzauber in Zauberer-NPCs einstellen, dessen 
-     Vorhandensein dann in jeder Kampfrunde ueberprueft
-     wird, z.B. "schutz","schutzhuelle","zauberschild".
+   P_Z_AUTOSHIELD                             "z_autoshield"
 
-BEMERKUNGEN:
-     "zauberschild" ist ein Magisterspruch und kann nur in 
-     bestimmten Zeitabstaenden benutzt werden. Wer also als
-     Autoshield nur Zauberschild benutzt, blockiert damit
-     alle anderen Spells, solange der Magisterspruch nicht
-     gesprochen werden kann.
-     Abhilfe: _query_next_master_spell_time()  return 0; }
 
-SIEHE AUCH:
-     /p/zauberer/text/wiznpc.doku
+DEFINIERT IN
+============
+
+   /p/zauberer/wiznpc.h
+
+
+BESCHREIBUNG
+============
+
+   Mit dieser Property  kann man einen automatischen
+   Schutzzauber in Zauberer-NPCs einstellen, dessen
+   Vorhandensein dann in jeder Kampfrunde ueberprueft
+   wird, z.B. "schutz","schutzhuelle","zauberschild".
+
+
+BEMERKUNGEN
+===========
+
+   "zauberschild" ist ein Magisterspruch und kann nur in
+   bestimmten Zeitabstaenden benutzt werden. Wer also als
+   Autoshield nur Zauberschild benutzt, blockiert damit
+   alle anderen Spells, solange der Magisterspruch nicht
+   gesprochen werden kann.
+   Abhilfe: _query_next_master_spell_time()  return 0; }
+
+
+SIEHE AUCH
+==========
+
+   /p/zauberer/text/wiznpc.doku
 
 21.Okt 2006 Chagall
diff --git a/doc/props/gildenprops/P_Z_INFO b/doc/props/gildenprops/P_Z_INFO
index d82d38a..654c768 100644
--- a/doc/props/gildenprops/P_Z_INFO
+++ b/doc/props/gildenprops/P_Z_INFO
@@ -1,53 +1,73 @@
+
 P_Z_INFO
-
-NAME:
-     P_Z_INFO						"z_info"
-
-DEFINIERT IN:
-     /p/zauberer/wiznpc.h
-
-BESCHREIBUNG:
-     Diese Property muss gesetzt werden, wenn man den
-     Zauberergilden-Standard-NPC nutzt. Sie setzt die
-     Grundeinstellungen des NPCs und generiert das 
-     Newskills-Mapping. 
-
-     Die Property ist wie folgt aufgebaut:
-
-     * MIN (minimale Skillability im Bereich von 0 - 10000)
-     * MAX (maximale Skillability im Bereich von 0 - 10000)
-     * LEV (Gildenlevel)
-     * ZWEIG (Gildenzweig)
+********
 
 
-BEMERKUNGEN:
-     Fuer die Argumente LEV und ZWEIG stehen folgende Auswahl-
-     moeglichkeiten zur Verfuegung.
+NAME
+====
 
-     LEV:
-        Z_ANFAENGER	0
-	Z_LEHRLING	1
-	Z_MEISTER	2
-	Z_ERZMEISTER	3
-
-     ZWEIG:
-        ZZW_ANGRIFF		  1
-	ZZW_ABWEHR		  2
-	ZZW_ILLUSION		  4
-	ZZW_BEHERRSCHUNG	  8
-	ZZW_HELLSICHT		 16
-	ZZW_VERWANDLUNG		 32
-	ZZW_SCHWARZ		 64	INAKTIV
-	ZZW_WEISS		128
-	ZZW_ALLE		511
-
-BEISPIEL:
-     SetProp(P_Z_INFO, ({9000, 9500, Z_ERZMEISTER, ZZW_ANGRIFF|ZZW_ABWEHR}));
-     erzeugt einen Erzmagister-PC, der alle Lehrlings- sowie die Magister und
-     Erzmagister-Sprueche Angriff und Abwehr mit 90-95% beherrscht.
+   P_Z_INFO                                           "z_info"
 
 
-SIEHE AUCH:
-     /p/zauberer/text/wiznpc.doku
+DEFINIERT IN
+============
+
+   /p/zauberer/wiznpc.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property muss gesetzt werden, wenn man den
+   Zauberergilden-Standard-NPC nutzt. Sie setzt die
+   Grundeinstellungen des NPCs und generiert das
+   Newskills-Mapping.
+
+   Die Property ist wie folgt aufgebaut:
+
+   * MIN (minimale Skillability im Bereich von 0 - 10000)
+   * MAX (maximale Skillability im Bereich von 0 - 10000)
+   * LEV (Gildenlevel)
+   * ZWEIG (Gildenzweig)
+
+
+BEMERKUNGEN
+===========
+
+   Fuer die Argumente LEV und ZWEIG stehen folgende Auswahl-
+   moeglichkeiten zur Verfuegung.
+
+   LEV:
+
+      Z_ANFAENGER     0
+      Z_LEHRLING      1
+      Z_MEISTER       2
+      Z_ERZMEISTER    3
+
+   ZWEIG:
+
+      ZZW_ANGRIFF               1
+      ZZW_ABWEHR                2
+      ZZW_ILLUSION              4
+      ZZW_BEHERRSCHUNG          8
+      ZZW_HELLSICHT            16
+      ZZW_VERWANDLUNG          32
+      ZZW_SCHWARZ              64     INAKTIV
+      ZZW_WEISS               128
+      ZZW_ALLE                511
+
+
+BEISPIEL
+========
+
+   SetProp(P_Z_INFO, ({9000, 9500, Z_ERZMEISTER, ZZW_ANGRIFF|ZZW_ABWEHR}));
+   erzeugt einen Erzmagister-PC, der alle Lehrlings- sowie die Magister und
+   Erzmagister-Sprueche Angriff und Abwehr mit 90-95% beherrscht.
+
+
+SIEHE AUCH
+==========
+
+   /p/zauberer/text/wiznpc.doku
 
 21.Okt 2006 Chagall
diff --git a/doc/props/gildenprops/P_Z_NO_MATERIAL b/doc/props/gildenprops/P_Z_NO_MATERIAL
index 4b040a0..cda514a 100644
--- a/doc/props/gildenprops/P_Z_NO_MATERIAL
+++ b/doc/props/gildenprops/P_Z_NO_MATERIAL
@@ -1,18 +1,34 @@
+
 P_Z_NO_MATERIAL
+***************
 
-NAME:
-     P_Z_NO_MATERIAL                     "npc_braucht_keine_kmp"
 
-DEFINIERT IN:
-     /p/zauberer/zauberer.h
+NAME
+====
 
-BESCHREIBUNG:
-     Setzt man diese Property in einem NPC, so benoetigt er fuer die
-     Sprueche der Zauberergilde keine Komponenten.
+   P_Z_NO_MATERIAL                     "npc_braucht_keine_kmp"
 
-BEMERKUNGEN:
-     NIEMALS diese Property einfach so in einem Spieler setzen.
 
-SIEHE AUCH:
+DEFINIERT IN
+============
+
+   /p/zauberer/zauberer.h
+
+
+BESCHREIBUNG
+============
+
+   Setzt man diese Property in einem NPC, so benoetigt er fuer die
+   Sprueche der Zauberergilde keine Komponenten.
+
+
+BEMERKUNGEN
+===========
+
+   NIEMALS diese Property einfach so in einem Spieler setzen.
+
+
+SIEHE AUCH
+==========
 
 21.Okt 2006 Chagall
diff --git a/doc/props/gildenprops/P_Z_NO_NOCONN b/doc/props/gildenprops/P_Z_NO_NOCONN
index 332dd14..6cd0024 100644
--- a/doc/props/gildenprops/P_Z_NO_NOCONN
+++ b/doc/props/gildenprops/P_Z_NO_NOCONN
@@ -1,22 +1,42 @@
+
+P_Z_NO_NOCONN
+*************
+
+
 P_Z_NO_NOCON
-
-NAME:
-     P_Z_NO_NOCON					"no_nocon"
-
-DEFINIERT IN:
-     /p/zauberer/wiznpc.h
-
-BESCHREIBUNG:
-     Der Standardzauberergildennpc setzt SI_NO_CONSEQUENCES, damit
-     die Gildenpcs nicht den negativen Auswirkungen beim Misslingen
-     der Sprueche geschuetzt sind. Setzt man diese Property vor
-     P_Z_INFO auf 0, wird das Flag nicht gesetzt.
+============
 
 
-BEMERKUNGEN:
-     Muss vor P_Z_INFO gesetzt werden, damit es wirksam ist.
+NAME
+====
 
-SIEHE AUCH:
-     /p/zauberer/text/wiznpc.doku, P_Z_INFO
+   P_Z_NO_NOCON                                       "no_nocon"
+
+
+DEFINIERT IN
+============
+
+   /p/zauberer/wiznpc.h
+
+
+BESCHREIBUNG
+============
+
+   Der Standardzauberergildennpc setzt SI_NO_CONSEQUENCES, damit
+   die Gildenpcs nicht den negativen Auswirkungen beim Misslingen
+   der Sprueche geschuetzt sind. Setzt man diese Property vor
+   P_Z_INFO auf 0, wird das Flag nicht gesetzt.
+
+
+BEMERKUNGEN
+===========
+
+   Muss vor P_Z_INFO gesetzt werden, damit es wirksam ist.
+
+
+SIEHE AUCH
+==========
+
+   /p/zauberer/text/wiznpc.doku, P_Z_INFO
 
 21.Okt 2006 Chagall
diff --git a/doc/props/gildenprops/P_Z_NO_SPELL_SUPPORT b/doc/props/gildenprops/P_Z_NO_SPELL_SUPPORT
index 4a1ab28..74860f6 100644
--- a/doc/props/gildenprops/P_Z_NO_SPELL_SUPPORT
+++ b/doc/props/gildenprops/P_Z_NO_SPELL_SUPPORT
@@ -1,25 +1,41 @@
+
 P_Z_NO_SPELL_SUPPORT
+********************
 
-NAME:
-     P_Z_NO_SPELL_SUPPORT	"zauberer_ruestung_unterstuetzt_noch_nicht"
 
-DEFINIERT IN:
-     /p/zauberer/zauberer.h
+NAME
+====
 
-BESCHREIBUNG:
-     Normalerweise unterstuetzt eine Ruestung den Zauberer, sobald sie im
-     entsprechenden Ruestungsmaster eingetragen ist. Moechte man allerdings
-     die Unterstuetzung an bestimmte Bedingungen knuepfen, z.B. das loesen
-     einer Miniquest, so kann man diese Property auf 1 setzen. Die Ruestung
-     unterstuetzt dann nicht. Um die Unterstuetzung wieder zu aktivieren,
-     setzt man die Property wieder auf 0.
+   P_Z_NO_SPELL_SUPPORT       "zauberer_ruestung_unterstuetzt_noch_nicht"
 
-BEMERKUNGEN:
-     NIEMALS diese Property einfach so in fremden Zaubererruestungen 
-     setzen. Sollte der Gildenmagier erfahren, dass z.B. ein NPC
-     einfach so die Unterstuetzung der Ruestungen ausschaltet, wird
-     diese Property wieder deaktiviert.
 
-SIEHE AUCH:
+DEFINIERT IN
+============
+
+   /p/zauberer/zauberer.h
+
+
+BESCHREIBUNG
+============
+
+   Normalerweise unterstuetzt eine Ruestung den Zauberer, sobald sie im
+   entsprechenden Ruestungsmaster eingetragen ist. Moechte man allerdings
+   die Unterstuetzung an bestimmte Bedingungen knuepfen, z.B. das loesen
+   einer Miniquest, so kann man diese Property auf 1 setzen. Die Ruestung
+   unterstuetzt dann nicht. Um die Unterstuetzung wieder zu aktivieren,
+   setzt man die Property wieder auf 0.
+
+
+BEMERKUNGEN
+===========
+
+   NIEMALS diese Property einfach so in fremden Zaubererruestungen
+   setzen. Sollte der Gildenmagier erfahren, dass z.B. ein NPC
+   einfach so die Unterstuetzung der Ruestungen ausschaltet, wird
+   diese Property wieder deaktiviert.
+
+
+SIEHE AUCH
+==========
 
 21.Okt 2006 Chagall
diff --git a/doc/props/gildenprops/kaempferboni b/doc/props/gildenprops/kaempferboni
index 50e4be5..0d34e98 100644
--- a/doc/props/gildenprops/kaempferboni
+++ b/doc/props/gildenprops/kaempferboni
@@ -1,264 +1,270 @@
 
+kaempferboni
+************
+
 Kaempferboni und deren Implementation
--------------------------------------
--------------------------------------
 
-Bei den Kaempfern gibt es einige Properties, die, in Waffen oder Ruestungen
-gesetzt, der Kampfverlauf eines Spielers erheblich beeinflussen koennen.
+======================================================================
 
-Zu beachten ist, dass die Abnahme von Waffen oder Ruestungen mit Kaempferboni
-allein der Balance obliegt. Der Gildenmagier der Kaempfer steht aber gerne
-mit Rat und Tat zur Seite.
+Bei den Kaempfern gibt es einige Properties, die, in Waffen oder
+Ruestungen gesetzt, der Kampfverlauf eines Spielers erheblich
+beeinflussen koennen.
 
+Zu beachten ist, dass die Abnahme von Waffen oder Ruestungen mit
+Kaempferboni allein der Balance obliegt. Der Gildenmagier der Kaempfer
+steht aber gerne mit Rat und Tat zur Seite.
 
 Abschnitt A
------------
 
 In Waffen koennen nachfolgende, in /p/kaempfer/kaempfer.h definierten,
-Properties gesetzt werden. Die meisten davon fungieren als 'Boni' und werden
-dem Spieler auch mittels 'schaetz <waffe>' angezeigt:
-
+Properties gesetzt werden. Die meisten davon fungieren als 'Boni' und
+werden dem Spieler auch mittels 'schaetz <waffe>' angezeigt
 
 1 Waffenschlagbonus - K_BRAWLING_WC (INT) - "k_brawling_wc"
 
-  Wenn die Waffe eine zusaetzlich gefaehrliche Stelle besitzt - z.B. einen
-  harten Dorn am Stielende, eine Spitze am Ruecken einer Axtklinge, Zacken
-  am Dolchgriff - kann man der Waffe einen Waffenschlagbonus geben.
-  Dies bedeutet, dass der Waffenschlag um ein paar Prozente verstaerkt wird,
-  da der Spieler natuerlich versucht, immer genau mit diesem 'feature'
-  den Waffenschlag auszufuehren (der Waffenschlag ist kurz gesagt ein
-  unerwarteter Schlag, der nicht mit dem 'normalen' Waffenende ausgefuehrt
-  wird, der Gegner wird dadurch ueberrascht -> mehr Schaden).
-  Da solch ein 'feature' doch recht auffaellig ist, sollte es in der
-  Langbeschreibung der Waffe auf jeden Fall erwaehnt werden.
+   Wenn die Waffe eine zusaetzlich gefaehrliche Stelle besitzt - z.B.
+   einen harten Dorn am Stielende, eine Spitze am Ruecken einer
+   Axtklinge, Zacken am Dolchgriff - kann man der Waffe einen
+   Waffenschlagbonus geben. Dies bedeutet, dass der Waffenschlag um
+   ein paar Prozente verstaerkt wird, da der Spieler natuerlich
+   versucht, immer genau mit diesem 'feature' den Waffenschlag
+   auszufuehren (der Waffenschlag ist kurz gesagt ein unerwarteter
+   Schlag, der nicht mit dem 'normalen' Waffenende ausgefuehrt wird,
+   der Gegner wird dadurch ueberrascht -> mehr Schaden). Da solch ein
+   'feature' doch recht auffaellig ist, sollte es in der
+   Langbeschreibung der Waffe auf jeden Fall erwaehnt werden.
 
-  Interessant zu wissen waere noch, dass Zweihandwaffen einen generellen
-  zusaetzlichen Bonus auf den Waffenschlag bekommen und dass es eine
-  Abstufung gibt, nach der die Waffengattungen die Hoehe des Basiswertes
-  gesetzt bekommen, wobei Speere den hoechsten und Messer den niedrigsten
-  besitzen:
+   Interessant zu wissen waere noch, dass Zweihandwaffen einen
+   generellen zusaetzlichen Bonus auf den Waffenschlag bekommen und
+   dass es eine Abstufung gibt, nach der die Waffengattungen die Hoehe
+   des Basiswertes gesetzt bekommen, wobei Speere den hoechsten und
+   Messer den niedrigsten besitzen
 
-  Speere - Kampfstaebe - Aexte - Keulen - Schwerter - Messer
+   Speere - Kampfstaebe - Aexte - Keulen - Schwerter - Messer
 
-  Der max. Bonus fuer diese Property betraegt 30, wobei 1-10 -> geringer
-  Bonus, 11-20 -> guter Bonus, 21-30 -> sehr guter Bonus.
+   Der max. Bonus fuer diese Property betraegt 30, wobei 1-10 ->
+   geringer Bonus, 11-20 -> guter Bonus, 21-30 -> sehr guter Bonus.
 
-  Bitte beachten: ein Zweihand-Speer mit max. P_WC und max. K_BRAWLING_WC
-  haut entsprechend gut rein und sollte nur schwer zu ergattern sein, bzw.
-  noch andere Auflagen haben (ggf. unique, personalisiert, etc.)
-
+   Bitte beachten ein Zweihand-Speer mit max. P_WC und max.
+   K_BRAWLING_WC haut entsprechend gut rein und sollte nur schwer zu
+   ergattern sein, bzw. noch andere Auflagen haben (ggf. unique,
+   personalisiert, etc.)
 
 2 Waffenschlagschaden - K_BRAWLING_DT (STRING) - "k_brawling_dt"
 
-  Wenn die Waffe, mit der der Kaempfer einen Waffenschlag ausfuehrt, ein
-  'feature' hat, mit dem er diesen Schlag ausfuehrt, kann dieses 'feature'
-  einen anderen Waffenschlagschaden besitzen. Z.B. kann ein Schwert, welches
-  normalerweise DT_SLASH macht, besonders lange und spitze Parierstangen
-  besitzen, die vielleicht auch noch vergiftet sind. Dann kann der Magier
-  ({DT_PIERCE,DT_POISON}) setzen, so dass beim Waffenschlag immer ein
-  Mischschaden aus Stiche und Gift erfolgt.
+   Wenn die Waffe, mit der der Kaempfer einen Waffenschlag ausfuehrt,
+   ein 'feature' hat, mit dem er diesen Schlag ausfuehrt, kann dieses
+   'feature' einen anderen Waffenschlagschaden besitzen. Z.B. kann ein
+   Schwert, welches normalerweise DT_SLASH macht, besonders lange und
+   spitze Parierstangen besitzen, die vielleicht auch noch vergiftet
+   sind. Dann kann der Magier ({DT_PIERCE,DT_POISON}) setzen, so dass
+   beim Waffenschlag immer ein Mischschaden aus Stiche und Gift
+   erfolgt.
 
+3 Waffenschlagsmeldung - K_BRAWLING_MSG (STRING/STRING*) -
+k_brawling_msg"
 
-3 Waffenschlagsmeldung - K_BRAWLING_MSG (STRING/STRING*) - k_brawling_msg"
+   In diese Property kann man hineinschreiben, mit welchem Teil der
+   Waffe der Waffenschlag ausgefuehrt wird. Angenommen, es bietet sich
+   an, mit einer Waffe stets den Waffenschlag mit einem grossen Knauf
+   am Griff auszufuehren, wird schlicht und einfach "mit einem grossen
+   Knauf am Griff der Schlachtaxt" in die Property gesetzt. Sollte
+   sich bei der Programmierung ergeben, dass es sich anbietet, der
+   Waffe mehr als nur eine guenstige Stelle anzudichten mit der man
+   den Waffenschlag ausfuehren kann, so setzt man ein Array, z.B.
+   ({"mit einem grossen Knauf am Griff der Schlachtaxt","mit der
+   breiten Seite der " "Schlachtaxtklinge"}). Insgesamt ist darauf zu
+   achten, dass die Meldungen 'vollstandig' sind. Das Array kann
+   beliebige Groesse annehmen, es wird dann zufaellig eine Meldung
+   beim Schlag ausgesucht.
 
-  In diese Property kann man hineinschreiben, mit welchem Teil der Waffe
-  der Waffenschlag ausgefuehrt wird. Angenommen, es bietet sich an, mit
-  einer Waffe stets den Waffenschlag mit einem grossen Knauf am Griff
-  auszufuehren, wird schlicht und einfach "mit einem grossen Knauf am
-  Griff der Schlachtaxt" in die Property gesetzt.
-  Sollte sich bei der Programmierung ergeben, dass es sich anbietet, der
-  Waffe mehr als nur eine guenstige Stelle anzudichten mit der man den
-  Waffenschlag ausfuehren kann, so setzt man ein Array, z.B. ({"mit einem
-  grossen Knauf am Griff der Schlachtaxt","mit der breiten Seite der "
-  "Schlachtaxtklinge"}). Insgesamt ist darauf zu achten, dass die Meldungen
-  'vollstandig' sind. Das Array kann beliebige Groesse annehmen, es wird
-  dann zufaellig eine Meldung beim Schlag ausgesucht.
-
-  Es empfiehlt sich, jede Waffe mit dieser Property zu schmuecken, die
-  K_BRAWLING_WC gesetzt haben, da die Waffenschlagmeldungen damit im Kampf
-  'individualisiert' werden. In der Praxis wird es jedoch daran scheitern,
-  dass es viel zu viele alte Waffen gibt, die keiner mehr anfassen moechte.
-  Daher wird auf Standardmeldungen zurueckgegriffen, sollte diese Property
-  nicht gesetzt sein.
-
+   Es empfiehlt sich, jede Waffe mit dieser Property zu schmuecken,
+   die K_BRAWLING_WC gesetzt haben, da die Waffenschlagmeldungen damit
+   im Kampf 'individualisiert' werden. In der Praxis wird es jedoch
+   daran scheitern, dass es viel zu viele alte Waffen gibt, die keiner
+   mehr anfassen moechte. Daher wird auf Standardmeldungen
+   zurueckgegriffen, sollte diese Property nicht gesetzt sein.
 
 4 Waffenbruchbonus - K_WEAPON_SHATTER (INT) - "k_weapon_shatter"
 
-  Waffen, die besonders fuer den Waffenbruch konstruiert wurden, koennen
-  einen Bonus einbringen, der in dieser Property angegeben wird. Natuerlich
-  eignen sich die verschiedenen Waffentypen wieder unterschiedlich gut fuer
-  einen Waffenbruch: Keulen (meist aufgrund ihres Gewichts) am besten, Messer
-  am schlechtesten, alle anderen dazwischen (Axt - Schwert - Stab - Speer).
-  Dabei kriegen alle Waffen, die u.a. Schlagschaden verursachen, nochmal
-  einen kleinen Bonus obendrauf.
+   Waffen, die besonders fuer den Waffenbruch konstruiert wurden,
+   koennen einen Bonus einbringen, der in dieser Property angegeben
+   wird. Natuerlich eignen sich die verschiedenen Waffentypen wieder
+   unterschiedlich gut fuer einen Waffenbruch Keulen (meist aufgrund
+   ihres Gewichts) am besten, Messer am schlechtesten, alle anderen
+   dazwischen (Axt - Schwert - Stab - Speer). Dabei kriegen alle
+   Waffen, die u.a. Schlagschaden verursachen, nochmal einen kleinen
+   Bonus obendrauf.
 
-  Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer
-  Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
+   Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 ->
+   geringer Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
 
-  Bei gut gelungenem Waffenbruch wird die Waffe des Gegners beschaedigt, wenn
-  die Technik sehr gut gelingt, kann es auch sein, dass dem Gegner die Waffe
-  aus der Hand geschlagen wird (der Spieler kann sie allerdings nicht
-  aufheben und der NPC zueckt sie nach ein paar Kampfrunden wieder).
-
+   Bei gut gelungenem Waffenbruch wird die Waffe des Gegners
+   beschaedigt, wenn die Technik sehr gut gelingt, kann es auch sein,
+   dass dem Gegner die Waffe aus der Hand geschlagen wird (der Spieler
+   kann sie allerdings nicht aufheben und der NPC zueckt sie nach ein
+   paar Kampfrunden wieder).
 
 5 Bonus fuer Finte/Waffentrick - K_DISTRACTING_WEAPON (INT) -
-  "k_distracting_weapon"
+   "k_distracting_weapon"
 
-  Waffen, die fuer den Gegner aufgrund ihrer Bauweise besonders irritierend
-  sein koennen, koennen einen Bonus fuer Finte und Waffentrick haben. Dabei
-  wird der Gegner bei einer Finte bzw. einem Waffentrick NOCH mehr verwirrt,
-  als er es ohnehin schon nur durch die angewandte Technik wird.
-  Ein gutes Beispiel hierfuer ist z.B. der Kriegshamster: ein Hamster, der
-  auf einem Holzstab aufgespiesst ist, sollte fuer den Gegner schon SEHR
-  irritierend sein ;).
-  Die Waffengattung hat nur wenig Einfluss auf Finte/Waffentrick.
+   Waffen, die fuer den Gegner aufgrund ihrer Bauweise besonders
+   irritierend sein koennen, koennen einen Bonus fuer Finte und
+   Waffentrick haben. Dabei wird der Gegner bei einer Finte bzw. einem
+   Waffentrick NOCH mehr verwirrt, als er es ohnehin schon nur durch
+   die angewandte Technik wird. Ein gutes Beispiel hierfuer ist z.B.
+   der Kriegshamster ein Hamster, der auf einem Holzstab aufgespiesst
+   ist, sollte fuer den Gegner schon SEHR irritierend sein ;). Die
+   Waffengattung hat nur wenig Einfluss auf Finte/Waffentrick.
 
-  Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 -> geringer
-  Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
-
+   Der max. Bonus fuer diese Property betraegt 50, wobei 1-10 ->
+   geringer Bonus, 11-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
 
 6 Todesstossbonus - K_CRITICAL_HIT (INT) - "k_critical_hit"
 
-  Man stelle sich eine Waffe mit besonders spitzer, langer Klinge vor oder
-  eine magische Waffe, die dem geschwaechten Gegner die Seele entreisst.
-  Diese Eigenschaften verleihen dem Spieler beim Todesstoss einen
-  entsprechenden Bonus von bis zu 100%.
+   Man stelle sich eine Waffe mit besonders spitzer, langer Klinge vor
+   oder eine magische Waffe, die dem geschwaechten Gegner die Seele
+   entreisst. Diese Eigenschaften verleihen dem Spieler beim
+   Todesstoss einen entsprechenden Bonus von bis zu 100%.
 
-  Es ist moeglich, dass ein und dasselbe 'feature' sowohl dem Waffenschlag
-  als auch dem Todesstoss den Bonus stellt, z.B. zwei Hiebklingen auf dem
-  Klingenruecken einer grossen Axt. Auch dies sollte man deutlich aus der
-  Langbeschreibung herauslesen koennen.
+   Es ist moeglich, dass ein und dasselbe 'feature' sowohl dem
+   Waffenschlag als auch dem Todesstoss den Bonus stellt, z.B. zwei
+   Hiebklingen auf dem Klingenruecken einer grossen Axt. Auch dies
+   sollte man deutlich aus der Langbeschreibung herauslesen koennen.
 
-  Der max. Bonus fuer diese Property betraegt 100, wobei 100 eine Verdopplung
-  der P_WC beim Todesstoss bedeutet!
-  Ansonsten bedeutet 1-20 -> geringer Bonus, 21-60 -> guter Bonus,
-  61-100 -> sehr guter Bonus.
-
+   Der max. Bonus fuer diese Property betraegt 100, wobei 100 eine
+   Verdopplung der P_WC beim Todesstoss bedeutet! Ansonsten bedeutet
+   1-20 -> geringer Bonus, 21-60 -> guter Bonus, 61-100 -> sehr guter
+   Bonus.
 
 7 Waffenwurfbonus - K_THROWING_WEAPON (INT) - "k_throwing_weapon"
 
-  Wenn eine Waffe besonders gut zum Werfen geeignet ist, z.B. ein Wurfdolch,
-  dann kann diese Property gesetzt werden. Natuerlich ist der Grundwert wieder
-  von der Waffengattung abhaengig. Es gilt, dass man Messer und Speere
-  grundsaetzlich am besten werfen - und dabei gut Schaden machen - kann, am
-  schlechtesten schneiden Keulen und Kampfstaebe ab.
+   Wenn eine Waffe besonders gut zum Werfen geeignet ist, z.B. ein
+   Wurfdolch, dann kann diese Property gesetzt werden. Natuerlich ist
+   der Grundwert wieder von der Waffengattung abhaengig. Es gilt, dass
+   man Messer und Speere grundsaetzlich am besten werfen - und dabei
+   gut Schaden machen - kann, am schlechtesten schneiden Keulen und
+   Kampfstaebe ab.
 
-  Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer
-  Bonus, 21-40 -> guter Bonus, 31-50 -> sehr guter Bonus.
+   Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 ->
+   geringer Bonus, 21-40 -> guter Bonus, 31-50 -> sehr guter Bonus.
 
-  Zu beachten ist hierbei, dass ein sehr hoher Bonus nur bei Waffen mit etwas
-  geringerer P_WC vergeben werden sollte. Ein reines Wurfmesser ist nunmal im
-  normalen Kampf nicht die gefaehrlichste aller Waffen (speziell
-  ausbalanciert, keinen richtigen Griff, etc.).
-  Natuerlich kann es einen Wurfspeer mit max. P_WC und sehr hohem
-  Waffenwurfbonus geben, allerdings mit den ueblich hohen Restriktionen.
-
+   Zu beachten ist hierbei, dass ein sehr hoher Bonus nur bei Waffen
+   mit etwas geringerer P_WC vergeben werden sollte. Ein reines
+   Wurfmesser ist nunmal im normalen Kampf nicht die gefaehrlichste
+   aller Waffen (speziell ausbalanciert, keinen richtigen Griff,
+   etc.). Natuerlich kann es einen Wurfspeer mit max. P_WC und sehr
+   hohem Waffenwurfbonus geben, allerdings mit den ueblich hohen
+   Restriktionen.
 
 8 KO-Schlag-Bonus - K_KO (INT) - "k_ko"
 
-  Waffen, die besonders fuer einen KO-Schlag geeignet sind, koennen einen
-  Bonus mit dieser Property bekommen. Eine entsprechende Waffe koennte z.B.
-  ein lederumwickelter Pruegel sein, denn man will den Gegner ja nur KO
-  schlagen und nicht gleich toeten.
+   Waffen, die besonders fuer einen KO-Schlag geeignet sind, koennen
+   einen Bonus mit dieser Property bekommen. Eine entsprechende Waffe
+   koennte z.B. ein lederumwickelter Pruegel sein, denn man will den
+   Gegner ja nur KO schlagen und nicht gleich toeten.
 
-  Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 -> geringer
-  Bonus, 21-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
-
+   Der max. Bonus fuer diese Property betraegt 50, wobei 1-20 ->
+   geringer Bonus, 21-30 -> guter Bonus, 31-50 -> sehr guter Bonus.
 
 9 Kein Waffenschaerfen - K_NO_HONING (INT) - "k_no_honing"
 
-  Wenn eine Waffe aus irgendeinem Grund nicht geschaerft werden kann oder
-  darf, muss man diese Property auf 1 setzen.
-  Eine Erklaerung dafuer sollte in der P_LONG bzw. P_INFO erfolgen.
-
+   Wenn eine Waffe aus irgendeinem Grund nicht geschaerft werden kann
+   oder darf, muss man diese Property auf 1 setzen. Eine Erklaerung
+   dafuer sollte in der P_LONG bzw. P_INFO erfolgen.
 
 Abschnitt B
------------
 
 Die beiden Properties, P_EFFECTIVE_AC und P_EFFECTIVE_WC, welche in
-<combat.h> definiert sind, sind eigentlich nur dazu da, um Ruestungen und
-Waffen, die eine DefendFunc() bzw. HitFunc() besitzen, korrekt vom Spieler
-einschaetzen lassen zu koennnen.
+<combat.h> definiert sind, sind eigentlich nur dazu da, um Ruestungen
+und Waffen, die eine DefendFunc() bzw. HitFunc() besitzen, korrekt vom
+Spieler einschaetzen lassen zu koennnen.
 
-Das Kaempferspellbook verwendet diese Properties darueberhinaus wie folgt:
-
+Das Kaempferspellbook verwendet diese Properties darueberhinaus wie
+folgt
 
 1 Schutzboni in Waffen - P_EFFECTIVE_AC (INT) - "effective_ac"
 
-  Ist diese Property in einer Waffe gesetzt, geht das Kaempferspellbook
-  davon aus, dass diese Waffe mehr oder weniger die Faehigkeit besitzt,
-  auch wie eine Ruestung schuetzen zu koennen. Da man eine Waffe aber nicht
-  anziehen, sondern nur vor sich hertragen kann, kann auch der max.
-  Ruestungsschutz einer Waffe nur gleich dem max. Ruestungsschutz eines
-  Schildes entsprechen.
-  Eine gesetzte P_EFFECTIVE_AC in einer Waffe wird dem Spieler als mehr
-  oder weniger gute 'Paradewaffe' im 'schaetz' angezeigt und geht sowohl bei
-  der Waffenparade als auch beim Block als Bonus mit ein.
+   Ist diese Property in einer Waffe gesetzt, geht das
+   Kaempferspellbook davon aus, dass diese Waffe mehr oder weniger die
+   Faehigkeit besitzt, auch wie eine Ruestung schuetzen zu koennen. Da
+   man eine Waffe aber nicht anziehen, sondern nur vor sich hertragen
+   kann, kann auch der max. Ruestungsschutz einer Waffe nur gleich dem
+   max. Ruestungsschutz eines Schildes entsprechen. Eine gesetzte
+   P_EFFECTIVE_AC in einer Waffe wird dem Spieler als mehr oder
+   weniger gute 'Paradewaffe' im 'schaetz' angezeigt und geht sowohl
+   bei der Waffenparade als auch beim Block als Bonus mit ein.
 
-  Z.B. koennte ein leichtes Schwert, was aufgrund seiner Bauweise mehr fuer
-  den defensiven Kampf ausgelegt ist (extralange Parierstangen, verstaerkter
-  Handschutz im Griffbereich, ...) wie ein maessiges Schild wirken. Die
-  Vorteile liegen auf der Hand: der Spieler bekommt verstaerkten Schutz,
-  kann aber weiterhin eine Zweihandwaffe fuehren.
+   Z.B. koennte ein leichtes Schwert, was aufgrund seiner Bauweise
+   mehr fuer den defensiven Kampf ausgelegt ist (extralange
+   Parierstangen, verstaerkter Handschutz im Griffbereich, ...) wie
+   ein maessiges Schild wirken. Die Vorteile liegen auf der Hand der
+   Spieler bekommt verstaerkten Schutz, kann aber weiterhin eine
+   Zweihandwaffe fuehren.
 
-  Der max. Bonus fuer diese Property betraegt 40, wobei 1-20 -> geringer
-  Bonus, 21-30 -> guter Bonus, 31-40 -> sehr guter Bonus.
+   Der max. Bonus fuer diese Property betraegt 40, wobei 1-20 ->
+   geringer Bonus, 21-30 -> guter Bonus, 31-40 -> sehr guter Bonus.
 
-  Zu beachten ist hier, dass sehr gute Parierwaffen mit P_EFFECTIVE_AC > 30
-  moeglichst deutlich unter der max. WC liegen sollten.
+   Zu beachten ist hier, dass sehr gute Parierwaffen mit
+   P_EFFECTIVE_AC > 30 moeglichst deutlich unter der max. WC liegen
+   sollten.
 
-  Anmerkungen:
-  Eine gesetzte P_EFFECTIVE_AC in einem Schild kann den Bonus fuer die
-  Schildparade nach oben oder unten beeinflussen. Moechte man ein Schild
-  herstellen, welches speziell bei der Schildparade der Kaempfer besser
-  als 'normal' schuetzt, sollte man hier einen Wert eintragen, der deutlich
-  groesser als die P_AC des Schildes ist.
+   Anmerkungen Eine gesetzte P_EFFECTIVE_AC in einem Schild kann den
+   Bonus fuer die Schildparade nach oben oder unten beeinflussen.
+   Moechte man ein Schild herstellen, welches speziell bei der
+   Schildparade der Kaempfer besser als 'normal' schuetzt, sollte man
+   hier einen Wert eintragen, der deutlich groesser als die P_AC des
+   Schildes ist.
 
-  Eine gesetzte P_EFFECTIVE_AC in einer anderen Ruestung hat nur den Nutzen,
-  auf deren erhoehten (und nicht sofort sichtbaren) Verteidigungswert
-  hinzuweisen, der durch eine DefendFunc() realisiert wird.
-
+   Eine gesetzte P_EFFECTIVE_AC in einer anderen Ruestung hat nur den
+   Nutzen, auf deren erhoehten (und nicht sofort sichtbaren)
+   Verteidigungswert hinzuweisen, der durch eine DefendFunc()
+   realisiert wird.
 
 2 Angriffsboni in Ruestungen - P_EFFECTIVE_WC (INT) - "effective_wc"
 
-  Fuer die Kaempfer koennen folgende Ruestungstypen modifiziert werden:
-  AT_TROUSERS (Hosen), AT_HELMET (Kopfbedeckung), AT_BOOT (Fusskleidung),
-  AT_ARMOUR (Koerperruestung), AT_SHIELD (Schilde).
-  Ist in einer dieser Typen P_EFFECTIVE_WC gesetzt, so macht diese Ruestung
-  bei einem Angriff mit einer Spezialattacke (Kniestoss, Kopfstoss, Fusstritt,
-  Ellbogenschlag und Schildstoss) entsprechend mehr bzw. weniger Schaden als
-  ohne diese Property. Eine entsprechende Begruendung fuer eine Verstaerkung
-  oder Schwaechung sollte auch hier fuer den Spieler offensichtlich sein
-  (Dornen am Schild, verstaerkter Kniebereich, Zacken am Helm, etc.).
+   Fuer die Kaempfer koennen folgende Ruestungstypen modifiziert
+   werden AT_TROUSERS (Hosen), AT_HELMET (Kopfbedeckung), AT_BOOT
+   (Fusskleidung), AT_ARMOUR (Koerperruestung), AT_SHIELD (Schilde).
+   Ist in einer dieser Typen P_EFFECTIVE_WC gesetzt, so macht diese
+   Ruestung bei einem Angriff mit einer Spezialattacke (Kniestoss,
+   Kopfstoss, Fusstritt, Ellbogenschlag und Schildstoss) entsprechend
+   mehr bzw. weniger Schaden als ohne diese Property. Eine
+   entsprechende Begruendung fuer eine Verstaerkung oder Schwaechung
+   sollte auch hier fuer den Spieler offensichtlich sein (Dornen am
+   Schild, verstaerkter Kniebereich, Zacken am Helm, etc.).
 
-  Wenn man der Ruestung einen Bonus geben moechte, muss man darauf achten,
-  dass P_EFFECTIVE_WC hoeher ist als die P_AC der Ruestung! Sollte
-  P_EFFECTIVE_WC niedriger als P_AC sein, wird dennoch P_EFFECTIVE_WC als
-  Angriffswert genommen. Dies stellt natuerlich eine Schwaechung der
-  Spezialattacke dar. Moeglicherweise ist aber genau das gewollt, wenn eine
-  Ruestung, die sehr gut schuetzt, nur geringen Kaempferbonus aufweisen soll.
+   Wenn man der Ruestung einen Bonus geben moechte, muss man darauf
+   achten, dass P_EFFECTIVE_WC hoeher ist als die P_AC der Ruestung!
+   Sollte P_EFFECTIVE_WC niedriger als P_AC sein, wird dennoch
+   P_EFFECTIVE_WC als Angriffswert genommen. Dies stellt natuerlich
+   eine Schwaechung der Spezialattacke dar. Moeglicherweise ist aber
+   genau das gewollt, wenn eine Ruestung, die sehr gut schuetzt, nur
+   geringen Kaempferbonus aufweisen soll.
 
-  Beispiel: ein Schild aus Hartgummi kann recht gut Schlaege aller Art
-  abfangen (-> P_AC 35). Will der Kaempfer jedoch einen Schildstoss damit
-  machen, fehlt ihm aufgrund der Beschaffenheit die Wucht, eher daempft es
-  den Schildstoss noch ein wenig (-> P_EFFECTIVE_WC 25).
+   Beispiel ein Schild aus Hartgummi kann recht gut Schlaege aller Art
+   abfangen (-> P_AC 35). Will der Kaempfer jedoch einen Schildstoss
+   damit machen, fehlt ihm aufgrund der Beschaffenheit die Wucht, eher
+   daempft es den Schildstoss noch ein wenig (-> P_EFFECTIVE_WC 25).
 
-  Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der jeweils
-  doppelte maximale P_AC-Wert (s. 'man ruestungen').
+   Der Maximalwert fuer die P_EFFECTIVE_WC bei Kaempfern ist der
+   jeweils doppelte maximale P_AC-Wert (s. 'man ruestungen').
 
-  Die Angabe eines Schadenstyps (P_DAM_TYPE) in einer Ruestung kann dann
-  sinnvoll sein, wenn bei der Spezialattacke ein spezieller Schaden gemacht
-  werden soll. Beispielsweise sollten Flammenstiefel logischerweise DT_FIRE
-  und DT_BLUDGEON oder DT_PIERCE bei einem Kampftritt verursachen. Es MUSS
-  (logischerweise) mindestens ein physikalischer Schadenstyp enthalten sein.
-  Wird kein Schadenstyp angegeben, wird auf Standardtypen zurueckgegriffen.
+   Die Angabe eines Schadenstyps (P_DAM_TYPE) in einer Ruestung kann
+   dann sinnvoll sein, wenn bei der Spezialattacke ein spezieller
+   Schaden gemacht werden soll. Beispielsweise sollten Flammenstiefel
+   logischerweise DT_FIRE und DT_BLUDGEON oder DT_PIERCE bei einem
+   Kampftritt verursachen. Es MUSS (logischerweise) mindestens ein
+   physikalischer Schadenstyp enthalten sein. Wird kein Schadenstyp
+   angegeben, wird auf Standardtypen zurueckgegriffen.
 
 
-SIEHE AUCH:
-     Waffen:     P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc()
-     Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc()
-     Files:      /std/weapon.c, /std/weapon/combat.c
-     Balance:    waffen, ruestungen, properties
+SIEHE AUCH
+==========
 
------------------------------------------------------------------------------
+   Waffen:     P_WC, P_TOTAL_WC, P_EFFECTIVE_WC, HitFunc()
+   Ruestungen: P_AC, P_TOTAL_AC, P_EFFECTIVE_AC, DefendFunc()
+   Files:      /std/weapon.c, /std/weapon/combat.c
+   Balance:    waffen, ruestungen, properties
+
 26.10.2012, Gabylon
diff --git a/doc/props/obsolete/P_BALANCED_WEAPON b/doc/props/obsolete/P_BALANCED_WEAPON
index e785f2c..83a2fc4 100644
--- a/doc/props/obsolete/P_BALANCED_WEAPON
+++ b/doc/props/obsolete/P_BALANCED_WEAPON
@@ -1,35 +1,59 @@
-********************* UNGENUTZTE PROPERTY *****************************
-* Diese Property wird von der Mudlib NICHT ausgewertet und kann       *
-* als veraltet gelten.                                                *
-* Momentan ist auch keine Gilde bekannt, die mehr macht, als sie      *
-* auszugeben.                                                         *
-***********************************************************************
-NAME:
-        P_BALANCED_WEAPON  "balanced_weapon"
 
-DEFINIERT IN:
-        /sys/weapon.h
+P_BALANCED_WEAPON
+*****************
 
-BESCHREIBUNG:
-        Die Property gibt an, ob eine Waffe ausbalanciert ist oder nicht.
-        Die beiden moeglichen Werte sind logischerweise:
+********************* UNGENUTZTE PROPERTY
+***************************** * Diese Property wird von der Mudlib
+NICHT ausgewertet und kann       * * als veraltet gelten.
+* * Momentan ist auch keine Gilde bekannt, die mehr macht, als sie
+* * auszugeben.
+* *******************************************************************
+****
 
-                WP_BALANCED       balanciert
-                WP_UNBALANCED     unbalanciert
 
-        Die WP_* sind ebenfalls in <weapon.h> definiert.
+NAME
+====
 
-BEISPIELE:
-        a) Eine ausbalancierte Waffe ist z.B. ein Kampfstab.
+   P_BALANCED_WEAPON  "balanced_weapon"
 
-            SetProp(P_BALANCED_WEAPON,WP_BALANCED);
 
-        b) Eine nicht ausbalancierte Waffe ist z.B. eine Keule.
+DEFINIERT IN
+============
 
-            SetProp(P_BALANCED_WEAPON,WP_UNBALANCED);
+   /sys/weapon.h
 
-SIEHE AUCH:
-        P_TECHNIQUE, /std/weapon/combat.c
 
-LETZTE AeNDERUNG:
+BESCHREIBUNG
+============
+
+   Die Property gibt an, ob eine Waffe ausbalanciert ist oder nicht.
+   Die beiden moeglichen Werte sind logischerweise:
+
+           WP_BALANCED       balanciert
+           WP_UNBALANCED     unbalanciert
+
+   Die WP_* sind ebenfalls in <weapon.h> definiert.
+
+
+BEISPIELE
+=========
+
+   a) Eine ausbalancierte Waffe ist z.B. ein Kampfstab.
+
+       SetProp(P_BALANCED_WEAPON,WP_BALANCED);
+
+   b) Eine nicht ausbalancierte Waffe ist z.B. eine Keule.
+
+       SetProp(P_BALANCED_WEAPON,WP_UNBALANCED);
+
+
+SIEHE AUCH
+==========
+
+   P_TECHNIQUE, /std/weapon/combat.c
+
+
+LETZTE AeNDERUNG
+================
+
 15.02.2009, Zesstra
diff --git a/doc/props/obsolete/P_DEFAULT_INFO b/doc/props/obsolete/P_DEFAULT_INFO
index 814928c..9a16169 100644
--- a/doc/props/obsolete/P_DEFAULT_INFO
+++ b/doc/props/obsolete/P_DEFAULT_INFO
@@ -1,28 +1,50 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
 
-NAME:
-    P_DEFAULT_INFO                "default_info"
+P_DEFAULT_INFO
+**************
 
-DEFINIERT IN:
-    /sys/properties.h
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
 
-BESCHREIBUNG:
-    Default-Antwort eines Npc, wenn er auf das Schluesselwort durch den
-    Spieler kein AddInfo parat hat.
 
-BEMERKUNG:
-    Diese Property sollte nicht mehr benutzt werden. Stattdessen bitte
-    AddInfo(DEFAULT_INFO,...) verwenden.
-    Dem in dieser Prop angegeben String wird immer der Name des Npc
-    vorausgestellt. Will man dies verhindern, muss man sie ueberschreiben.
+NAME
+====
 
-BEISPIEL:
-    SetProp(P_DEFAULT_INFO,"bohrt gelangweilt in der Nase.\n");
+   P_DEFAULT_INFO                "default_info"
 
-SIEHE AUCH:
-    AddInfo
 
-----------------------------------------------------------------------------
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Default-Antwort eines Npc, wenn er auf das Schluesselwort durch den
+   Spieler kein AddInfo parat hat.
+
+
+BEMERKUNG
+=========
+
+   Diese Property sollte nicht mehr benutzt werden. Stattdessen bitte
+   AddInfo(DEFAULT_INFO,...) verwenden.
+   Dem in dieser Prop angegeben String wird immer der Name des Npc
+   vorausgestellt. Will man dies verhindern, muss man sie ueberschreiben.
+
+
+BEISPIEL
+========
+
+   SetProp(P_DEFAULT_INFO,"bohrt gelangweilt in der Nase.\n");
+
+
+SIEHE AUCH
+==========
+
+   AddInfo
+
 17.08.2010, Zesstra
diff --git a/doc/props/obsolete/P_EXTRA_LOOK b/doc/props/obsolete/P_EXTRA_LOOK
deleted file mode 100644
index 3777a25..0000000
--- a/doc/props/obsolete/P_EXTRA_LOOK
+++ /dev/null
@@ -1,35 +0,0 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte benutzt sie NICHT mehr, sondern  *
-* stattdessden AddExtraLook().                                        *
-***********************************************************************
-
-NAME:
-	P_EXTRA_LOOK			"extralook"
-
-DEFINIERT IN:
-	/sys/living/description.h
-
-BESCHREIBUNG:
-	Diese Property enthaelt einen String. Sie wird entweder in Lebewesen
-	direkt oder in Objekten gesetzt wird, die im Besitz von Lebewesen
-	sein koennen.
-	Diese Strings erscheinen dann zusaetzlich in der Langbeschreibung
-	des Lebewesens bzw. des Besitzers (wenn das Objekt sich direkt im
-	 Lebewesen befindet, jedoch nicht in einem Behaelter im Lebewesen).
-	Fuer den Zeilenumbruch muss man selbst sorgen.
-
-BEISPIEL:
-	Ein Spieler hat eine Pfeife im Mund. In dieser Pfeife setzt man z.B.
-	in der Funktion zum Pfeife Rauchen folgendes:
-	  SetProp(P_EXTRA_LOOK,break_string(
-	 this_player()->Name(WER)+" ist ganz umnebelt.",78);
-
-BEMERKUNG:
-  BITTE NICHT MEHR BENUTZEN!
-
-SIEHE AUCH:
-	long(), /std/living/description.c, /std/player/base.c
-  AddExtraLook(), RemoveExtraLook()
-
-----------------------------------------------------------------------------
-13.05.2007, Zesstra
diff --git a/doc/props/obsolete/P_LAST_KILLER b/doc/props/obsolete/P_LAST_KILLER
index 27eea8f..199a878 100644
--- a/doc/props/obsolete/P_LAST_KILLER
+++ b/doc/props/obsolete/P_LAST_KILLER
@@ -1,20 +1,37 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet und wird bald aus der Mudlib entfernt.  *
-***********************************************************************
 
-NAME:
-    P_LAST_KILLER                 "last_killer"                 
+P_LAST_KILLER
+*************
 
-DEFINIERT IN:
-    /sys/player.h
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet und wird
+bald aus der Mudlib entfernt.  * ************************************
+***********************************
 
-BESCHREIBUNG:
-     Letzter Moerdes des Wesens.
-     Diese Property wurde nur in Spielern gesetzt und auch dann nicht immer.
-     Bitte stattdessen P_KILLER abfragen, welche in NPC und Spielern gesetzt
-     wird.
 
-SIEHE AUCH:
-    P_KILLER, die()
+NAME
+====
+
+   P_LAST_KILLER                 "last_killer"
+
+
+DEFINIERT IN
+============
+
+   /sys/player.h
+
+
+BESCHREIBUNG
+============
+
+   Letzter Moerdes des Wesens.
+   Diese Property wurde nur in Spielern gesetzt und auch dann nicht immer.
+   Bitte stattdessen P_KILLER abfragen, welche in NPC und Spielern gesetzt
+   wird.
+
+
+SIEHE AUCH
+==========
+
+   P_KILLER, die()
 
 05.09.2008, Zesstra
diff --git a/doc/props/obsolete/P_LAST_PEACE_TIME b/doc/props/obsolete/P_LAST_PEACE_TIME
index 762233e..f8aea49 100644
--- a/doc/props/obsolete/P_LAST_PEACE_TIME
+++ b/doc/props/obsolete/P_LAST_PEACE_TIME
@@ -1,27 +1,41 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet und wird bald aus der Mudlib entfernt.  *
-***********************************************************************
-PROPERTY
 
-	P_LAST_PEACE_TIME	"last_peace_time"
+P_LAST_PEACE_TIME
+*****************
+
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet und wird
+bald aus der Mudlib entfernt.  * ************************************
+***********************************
+
+
+PROPERTY
+========
+
+   P_LAST_PEACE_TIME       "last_peace_time"
+
 
 DEFINIERT IN
+============
 
-	/std/living/combat.c
+   /std/living/combat.c
+
 
 BESCHREIBUNG
+============
 
-	Diese Property gibt an, wann zuletzt versucht wurde, einen NPC zu
-	befrieden. Bitte nach Moeglichkeit nur lesend verwenden. Des weiteren
-	wird sie nur im ueblichen Verhalten von QueryPacify gesetzt, und nur
-	dann, wenn P_ACCEPT_PEACE nicht gesetzt ist.
+   Diese Property gibt an, wann zuletzt versucht wurde, einen NPC zu
+   befrieden. Bitte nach Moeglichkeit nur lesend verwenden. Des weiteren
+   wird sie nur im ueblichen Verhalten von QueryPacify gesetzt, und nur
+   dann, wenn P_ACCEPT_PEACE nicht gesetzt ist.
+
 
 SIEHE AUCH
+==========
 
-	QueryPacify, P_ACCEPT_PEACE
+   QueryPacify, P_ACCEPT_PEACE
+
 
 LETZTE AENDERUNG
+================
 
-	2004-03-17, 14:30 von Humni
-	
-
+   2004-03-17, 14:30 von Humni
diff --git a/doc/props/obsolete/P_LOG_FILE b/doc/props/obsolete/P_LOG_FILE
index 1eafe40..ed57133 100644
--- a/doc/props/obsolete/P_LOG_FILE
+++ b/doc/props/obsolete/P_LOG_FILE
@@ -1,45 +1,69 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property wird nicht mehr ausgewertet.                         *
-***********************************************************************
-NAME:
-    P_LOG_FILE                   "log_file"
 
-DEFINIERT IN:
-    /sys/thing/properties.h
+P_LOG_FILE
+**********
 
-BESCHREIBUNG:
-    Enthaelt einen String auf einen Filenamen. 
+********************* VERALTETE PROPERTY
+****************************** * Diese Property wird nicht mehr
+ausgewertet.                         * ******************************
+*****************************************
 
-    Werden zu dem Objekt (Raum, Monster, ...) Fehlermeldungen abgesetzt, 
-    werden diese in das angegebene File umgeleitet. Die Eintragung in
-    die per Default fuer Fehlermeldungen vorgesehenen Dateien erfolgt
-    nicht.
 
-BEMERKUNGEN:
-    P_LOG_FILE wird ausgewertet wie log_file().
+NAME
+====
 
-    Das heisst, es wird AUF JEDEN FALL nach /log geschrieben!
+   P_LOG_FILE                   "log_file"
 
-    Direkt in /log kann NICHT geschrieben werden, es muss also ein 
-    Unterverzeichnis mit Eurem Magiernamen vorhanden sein.
 
-BEISPIELE:
-    SetProp(P_LOG_FILE,"tilly_log");          // FALSCH, es wuerde versucht, 
-                                                 das File /log/tilly_log 
-                                                 anzulegen
-    SetProp(P_LOG_FILE,"/log/tilly_log");     // FALSCH, es wuerde versucht, 
-                                                 das File /log/log/tilly_log
-                                                 anzulegen
-    SetProp(P_LOG_FILE,"/d/ebene/tilly_log"); // FALSCH, s.o.
+DEFINIERT IN
+============
 
-    SetProp(P_LOG_FILE,"tilly/tilly_log");    // RICHTIG!
+   /sys/thing/properties.h
 
-    Im letzten Beispiel werden alle Eintraege in das File tilly_log ge-
-    schrieben, das sich im Verzeichnis /log/tilly/ befindet.
 
-    Das Unterverzeichnis /tilly in /log muss zuvor angelegt werden.
+BESCHREIBUNG
+============
 
-SIEHE AUCH:
-    P_LOG_INFO, write_file(), log_file(),
+   Enthaelt einen String auf einen Filenamen.
+
+   Werden zu dem Objekt (Raum, Monster, ...) Fehlermeldungen abgesetzt,
+   werden diese in das angegebene File umgeleitet. Die Eintragung in
+   die per Default fuer Fehlermeldungen vorgesehenen Dateien erfolgt
+   nicht.
+
+
+BEMERKUNGEN
+===========
+
+   P_LOG_FILE wird ausgewertet wie log_file().
+
+   Das heisst, es wird AUF JEDEN FALL nach /log geschrieben!
+
+   Direkt in /log kann NICHT geschrieben werden, es muss also ein
+   Unterverzeichnis mit Eurem Magiernamen vorhanden sein.
+
+
+BEISPIELE
+=========
+
+   SetProp(P_LOG_FILE,"tilly_log");          // FALSCH, es wuerde versucht,
+                                                das File /log/tilly_log
+                                                anzulegen
+   SetProp(P_LOG_FILE,"/log/tilly_log");     // FALSCH, es wuerde versucht,
+                                                das File /log/log/tilly_log
+                                                anzulegen
+   SetProp(P_LOG_FILE,"/d/ebene/tilly_log"); // FALSCH, s.o.
+
+   SetProp(P_LOG_FILE,"tilly/tilly_log");    // RICHTIG!
+
+   Im letzten Beispiel werden alle Eintraege in das File tilly_log ge-
+   schrieben, das sich im Verzeichnis /log/tilly/ befindet.
+
+   Das Unterverzeichnis /tilly in /log muss zuvor angelegt werden.
+
+
+SIEHE AUCH
+==========
+
+   P_LOG_INFO, write_file(), log_file(),
 
 Letzte Aenderung: 13.09.04 Tilly@MorgenGrauen
diff --git a/doc/props/obsolete/P_NEXT_SPELL_TIME b/doc/props/obsolete/P_NEXT_SPELL_TIME
index 4742456..300a766 100644
--- a/doc/props/obsolete/P_NEXT_SPELL_TIME
+++ b/doc/props/obsolete/P_NEXT_SPELL_TIME
@@ -1,30 +1,49 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
 
-NAME:
-    P_NEXT_SPELL_TIME             "next_spell"
+P_NEXT_SPELL_TIME
+*****************
 
-DEFINIERT IN:
-    /sys/new_skills.h
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
 
-BESCHREIBUNG:
-    Wann kann das naechste Mal gezaubert werden?
-    Dies ist eine globale Spruchermuedung/-Sperre.
-    Flexiblere Sperren koennen mittels SetSpellFatigue/CheckSpellFatigue()
-    verwaltet werden.
 
-    Diese Property ist keine echte Property, sondern liefert nur das
-    Ergebnis von von CheckSpellFatigue() zurueck bzw. ruft beim Setzen
-    SetSpellFatigue(<spruchsperre>, 0) auf.
-    Diese Prop sollte _nicht_ mittels Query- oder Setmethoden manupuliert
-    werden, da sonst Inkonsistenzen zum Ergebnis von CheckSpellFatigue()
-    auftreten.
+NAME
+====
 
-SIEHE AUCH:
-    SetSpellFatigue(L), CheckSpellFatigue(L)
-    spruchermuedung
+   P_NEXT_SPELL_TIME             "next_spell"
 
-ZULETZT GEAeNDERT:
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Wann kann das naechste Mal gezaubert werden?
+   Dies ist eine globale Spruchermuedung/-Sperre.
+   Flexiblere Sperren koennen mittels SetSpellFatigue/CheckSpellFatigue()
+   verwaltet werden.
+
+   Diese Property ist keine echte Property, sondern liefert nur das
+   Ergebnis von von CheckSpellFatigue() zurueck bzw. ruft beim Setzen
+   SetSpellFatigue(<spruchsperre>, 0) auf.
+   Diese Prop sollte _nicht_ mittels Query- oder Setmethoden manupuliert
+   werden, da sonst Inkonsistenzen zum Ergebnis von CheckSpellFatigue()
+   auftreten.
+
+
+SIEHE AUCH
+==========
+
+   SetSpellFatigue(L), CheckSpellFatigue(L)
+   spruchermuedung
+
+
+ZULETZT GEAeNDERT
+=================
+
 14.03.2010, Zesstra
-
diff --git a/doc/props/obsolete/P_READ_MSG b/doc/props/obsolete/P_READ_MSG
index 5c79fdc..2331508 100644
--- a/doc/props/obsolete/P_READ_MSG
+++ b/doc/props/obsolete/P_READ_MSG
@@ -1,32 +1,56 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
-NAME:
-    P_READ_MSG                "read_msg"                
 
-DEFINIERT IN:
-    /sys/properties.h
+P_READ_MSG
+**********
 
-BESCHREIBUNG:
-    Diese Property ist veraltet. Ihre Funktion wird von
-    AddReadDetail(SENSE_DEFAULT, ...) uebernommen.
-    
-    Hier koennen Informationen gespeichert werden, die beim Lesen
-    des Objektes ausgegeben werden.
-     
-    Fuer das Identifizieren des zu lesenden Objektes wird der gleiche
-    Mechanismus benutzt wie fuer lesbare und andere Details.
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
 
-    Die Benutzung von process_string() ist in dieser Prop nicht mehr erlaubt.
 
-BEISPIEL:
-    AddId(({"rolle", "schriftrolle"}));
-    SetProp(P_READ_MSG,
-       "Du oeffnest die Rolle und liest: LOREM IPSUM ...\n");
-     
-SIEHE AUCH:
-    Details:   AddReadDetail(), RemoveReadDetail(), P_READ_DETAILS
-    Sonstiges: break_string()
+NAME
+====
+
+   P_READ_MSG                "read_msg"
+
+
+DEFINIERT IN
+============
+
+   /sys/properties.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property ist veraltet. Ihre Funktion wird von
+   AddReadDetail(SENSE_DEFAULT, ...) uebernommen.
+
+
+
+   Hier koennen Informationen gespeichert werden, die beim Lesen
+   des Objektes ausgegeben werden.
+
+
+
+   Fuer das Identifizieren des zu lesenden Objektes wird der gleiche
+   Mechanismus benutzt wie fuer lesbare und andere Details.
+
+   Die Benutzung von process_string() ist in dieser Prop nicht mehr erlaubt.
+
+
+BEISPIEL
+========
+
+   AddId(({"rolle", "schriftrolle"}));
+   SetProp(P_READ_MSG,
+      "Du oeffnest die Rolle und liest: LOREM IPSUM ...\n");
+
+
+SIEHE AUCH
+==========
+
+   Details:   AddReadDetail(), RemoveReadDetail(), P_READ_DETAILS
+   Sonstiges: break_string()
 
 09.12.2012, Zesstra
-
diff --git a/doc/props/obsolete/P_TECHNIQUE b/doc/props/obsolete/P_TECHNIQUE
index 1657027..a556ce6 100644
--- a/doc/props/obsolete/P_TECHNIQUE
+++ b/doc/props/obsolete/P_TECHNIQUE
@@ -1,44 +1,70 @@
-********************* UNGENUTZTE PROPERTY *****************************
-* Diese Property wird von der Mudlib NICHT ausgewertet und kann       *
-* als veraltet gelten.                                                *
-* Momentan ist auch keine Gilde bekannt, die mehr macht, als sie      *
-* auszugeben.                                                         *
-***********************************************************************
-NAME:
-	P_TECHNIQUE				"technique"
 
-DEFINIERT IN:
-	/sys/weapon.h
+P_TECHNIQUE
+***********
 
-BESCHREIBUNG:
-        Die Technik(en), mit denen eine Waffe im Kampf eingesetzt werden
-        kann. Folgende Techniken stehen zur Verfuegung:
+********************* UNGENUTZTE PROPERTY
+***************************** * Diese Property wird von der Mudlib
+NICHT ausgewertet und kann       * * als veraltet gelten.
+* * Momentan ist auch keine Gilde bekannt, die mehr macht, als sie
+* * auszugeben.
+* *******************************************************************
+****
 
-                TQ_STROKE       Streichtechnik
-                TQ_THRASH       Schlagtechnik
-                TQ_THRUST       Stosstechnik
-                TQ_WHIP         Peitschtechnik
 
-        Die Techniken sind ebenfalls in <weapon.h> definiert und auf der
-        man-page 'techniken' naeher erlaeutert.
+NAME
+====
 
-BEMERKUNGEN:
-        Man kann einer Waffe eine oder mehrere Techniken zuweisen.
+   P_TECHNIQUE                             "technique"
 
-BEISPIELE:
-        a) Eine Waffe, die nur mit einer Peitschtechnik eingesetzt wird,
-           also typischerweise eine Peitsche, aber auch ein Morgenstern:
 
-            SetProp(P_TECHNIQUE,TQ_WHIP);
+DEFINIERT IN
+============
 
-        b) Eine Waffe, die sowohl mit der Schlag- als auch der Stosstechnik
-           eingesetzt wird, also z.B. eine Hellebarde:
+   /sys/weapon.h
 
-            SetProp(P_TECHNIQUE,({TQ_THRASH,TQ_THRUST}));
 
-SIEHE AUCH:
-        techniken, P_BALANCED_WEAPON, /std/weapon/combat.c
+BESCHREIBUNG
+============
 
-LETZTE AeNDERUNG:
+   Die Technik(en), mit denen eine Waffe im Kampf eingesetzt werden
+   kann. Folgende Techniken stehen zur Verfuegung:
+
+           TQ_STROKE       Streichtechnik
+           TQ_THRASH       Schlagtechnik
+           TQ_THRUST       Stosstechnik
+           TQ_WHIP         Peitschtechnik
+
+   Die Techniken sind ebenfalls in <weapon.h> definiert und auf der
+   man-page 'techniken' naeher erlaeutert.
+
+
+BEMERKUNGEN
+===========
+
+   Man kann einer Waffe eine oder mehrere Techniken zuweisen.
+
+
+BEISPIELE
+=========
+
+   a) Eine Waffe, die nur mit einer Peitschtechnik eingesetzt wird,
+      also typischerweise eine Peitsche, aber auch ein Morgenstern:
+
+       SetProp(P_TECHNIQUE,TQ_WHIP);
+
+   b) Eine Waffe, die sowohl mit der Schlag- als auch der Stosstechnik
+      eingesetzt wird, also z.B. eine Hellebarde:
+
+       SetProp(P_TECHNIQUE,({TQ_THRASH,TQ_THRUST}));
+
+
+SIEHE AUCH
+==========
+
+   techniken, P_BALANCED_WEAPON, /std/weapon/combat.c
+
+
+LETZTE AeNDERUNG
+================
+
 15.02.2009, Zesstra
-
diff --git a/doc/props/obsolete/P_TMP_ATTACK_HOOK b/doc/props/obsolete/P_TMP_ATTACK_HOOK
index bdc8152..6bd5130 100644
--- a/doc/props/obsolete/P_TMP_ATTACK_HOOK
+++ b/doc/props/obsolete/P_TMP_ATTACK_HOOK
@@ -1,73 +1,95 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
 P_TMP_ATTACK_HOOK
+*****************
 
-NAME:
-    P_TMP_ATTACK_HOOK             "attack_hook"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_ATTACK_HOOK
 
-DEFINIERT IN:
-    /sys/new_skills.h
 
-BESCHREIBUNG:
-     Mittels dieser Property koennen die Attacken eines Livings ggf.
-     abgebrochen werden noch bevor Waffen oder Skills zum ausgewertet
-     wurden.
+NAME
+====
 
-     Es wird an dem Living die Property als mindestens 3-elementiges Array:
-     ({zeitpunkt, objekt, methode, ...})
-     gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
-     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+   P_TMP_ATTACK_HOOK             "attack_hook"
 
-     Der Methode wird als Parameter der Gegner uebergeben.
 
-     Gibt die Methode 0 als Rueckgabewert zurueck, wird die Attacke sofort
-     kommentarlos abgebrochen.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
-     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
-       Property auf 0 gesetzt
-     - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
-       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
-       im Code anderer und ist andererseits unfair gegenueber ihnen
+   /sys/new_skills.h
 
-BEISPIELE:
-     *** der Spieler erhaelt eine Verwundung, die ihn manchmal behindert ***
-     if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_HOOK)) ||
-        sizeof(tmp)<3 || tmp[0]<=time()) {
-       TP->SetProp(P_TMP_ATTACK_HOOK,
-		   ({time()+3600, this_object(), "test_hurt"}));
-     ...
 
-     // die entsprechende Methode, die bei jedem Angriff ueber Attack()
-     // gerufen wird ...
-     int test_hurt(object enemy) {
+BESCHREIBUNG
+============
 
-       // mit 10% Chance generell und 20% Chance bei groesseren Gegnern
-       // bricht der Angriff ab ... previous_object() ist natuerlich
-       // der Angreifer
-       if(!random(10) ||
-          (enemy->QueryProp(P_SIZE)>previous_object()->QueryProp(P_SIZE) &&
-           !random(5)) {
+   Mittels dieser Property koennen die Attacken eines Livings ggf.
+   abgebrochen werden noch bevor Waffen oder Skills zum ausgewertet
+   wurden.
 
-          tell_object(previous_object(),
-            "Deine Wunde schmerzt dich zu sehr um anzugreifen.\n");
-          tell_room(environment(previous_object()),
-            previous_object()->Name(WER,1)+" zuckt vor Schmerzen zusammen.\n",
-            ({previous_object()}));
-          return 0;
-       }
+   Es wird an dem Living die Property als mindestens 3-elementiges Array:
+   ({zeitpunkt, objekt, methode, ...})
+   gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
+   Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
 
-       // ansonsten geht der Angriff weiter
-       return 1;
+   Der Methode wird als Parameter der Gegner uebergeben.
+
+   Gibt die Methode 0 als Rueckgabewert zurueck, wird die Attacke sofort
+   kommentarlos abgebrochen.
+
+
+BEMERKUNGEN
+===========
+
+   - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+   - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+     Property auf 0 gesetzt
+   - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+     pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+     im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIELE
+=========
+
+   *** der Spieler erhaelt eine Verwundung, die ihn manchmal behindert ***
+   if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_HOOK)) ||
+      sizeof(tmp)<3 || tmp[0]<=time()) {
+     TP->SetProp(P_TMP_ATTACK_HOOK,
+                 ({time()+3600, this_object(), "test_hurt"}));
+   ...
+
+   // die entsprechende Methode, die bei jedem Angriff ueber Attack()
+   // gerufen wird ...
+   int test_hurt(object enemy) {
+
+     // mit 10% Chance generell und 20% Chance bei groesseren Gegnern
+     // bricht der Angriff ab ... previous_object() ist natuerlich
+     // der Angreifer
+     if(!random(10) ||
+        (enemy->QueryProp(P_SIZE)>previous_object()->QueryProp(P_SIZE) &&
+         !random(5)) {
+
+        tell_object(previous_object(),
+          "Deine Wunde schmerzt dich zu sehr um anzugreifen.\n");
+        tell_room(environment(previous_object()),
+          previous_object()->Name(WER,1)+" zuckt vor Schmerzen zusammen.\n",
+          ({previous_object()}));
+        return 0;
      }
 
-SIEHE AUCH:
-     Angriff:	Attack(L)
-     Schutz:    Defend(L)
-     Verwandt:  InternalModifyAttack(L), P_TMP_ATTACK_MOD	
-     Hooks:	P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_DEFEND_HOOK
-     neue Hooks: std/hooks
+     // ansonsten geht der Angriff weiter
+     return 1;
+   }
+
+
+SIEHE AUCH
+==========
+
+   Angriff:   Attack(L)
+   Schutz:    Defend(L)
+   Verwandt:  InternalModifyAttack(L), P_TMP_ATTACK_MOD
+   Hooks:     P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_DEFEND_HOOK
+   neue Hooks: std/hooks
 
 08.12.2008, Zesstra
diff --git a/doc/props/obsolete/P_TMP_ATTACK_MOD b/doc/props/obsolete/P_TMP_ATTACK_MOD
index 3491c0c..df10409 100644
--- a/doc/props/obsolete/P_TMP_ATTACK_MOD
+++ b/doc/props/obsolete/P_TMP_ATTACK_MOD
@@ -1,112 +1,134 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
 P_TMP_ATTACK_MOD
+****************
 
-NAME:
-     P_TMP_ATTACK_MOD              "attack_mod"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_ATTACK_MOD
 
-DEFINIERT IN:
-     /sys/new_skills.h
 
-BESCHREIBUNG:
-     Mittels dieser Property koennen die Attacken eines Livings temporaer
-     veraendert werden.
+NAME
+====
 
-     Es wird an dem Living die Property als mindestens 3-elementiges Array
-     ({zeitpunkt, objekt, methode, ...})
-     gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
-     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+   P_TMP_ATTACK_MOD              "attack_mod"
 
-     Der Methode wird beim Aufruf ein Kopie des Mappings uebergeben, in dem
-     die bisherigen Werte des Angriffes vermerkt sind.
-     Aufbau von Mapping 'ainfo':
-     ([ SI_ENEMY :           object Angreifer,			(-> Defend)
-        SI_SPELL :           0/1/array Spellparameter,		(-> Defend)
-        P_WEAPON :           - oder Waffe,
-        SI_SKILLDAMAGE_MSG:  string Angriffsmeldungsende an Raum,
-        SI_SKILLDAMAGE_MSG2: string Angriffsmeldungsende an Kaempfende,
-        SI_SKILLDAMAGE:      int Schaden in Zehntel HP (Skills bis auf Rasse
-			     drin!)				(-> Defend),
-        SI_SKILLDAMAGE_TYPE: string/string* Schadenstypen,	(-> Defend)
-        P_WEAPON_TYPE:       string Waffentyp (combat.h),
-        P_WC:		     - oder int WC der Waffe/Hand,
-        P_NR_HANDS:	     - oder int Hands der Waffe/Hand,
-     ]);
 
-     Gibt die Methode:
-     - 0 oder kein Mapping zurueck, fuehrt das zum Abbruch der Attacke
-       -> da inzwischen Waffen abgefragt wurden, koennen schon Meldungen
-          von diesen ausgegeben worden sein
-     - ein leeres Mapping ( ([]) ) zurueck, fuehrt das zu keiner Modifikation
-     - ein Mapping mit veraenderten Werten zurueck, werden diese in das
-       Angriffsmapping kopiert
-       Die geaenderten Werte werden teilweise von SkillResTransfer() in
-       den eigentlichen Angriff uebernommen.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
-       Property auf 0 gesetzt
-     - vor dem Setzen immer auf die Existenz eines gueltigen Modifiers
-       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
-       im Code anderer und ist andererseits unfair gegenueber ihnen
+   /sys/new_skills.h
 
-BEISPIELE:
-     *** ein besonder heisser Segen modifiziert die Attacken des Spielers ***
-     int action_segen() {
-       ...
-       mixed *tmp;
 
-       // pruefen, ob nicht ein anderer Modifier existiert
-       if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_MOD)) ||
-          sizeof(tmp)<3 || tmp[0]<=time()) {
+BESCHREIBUNG
+============
 
-         object wield;
-         wield=TP->QueryProp(P_WEAPON);
+   Mittels dieser Property koennen die Attacken eines Livings temporaer
+   veraendert werden.
 
-         write(break_string(
-           "Der Priester der Flamme weiht "+
-           (wield?wield->name(WEN,1):"deine Haende")+".", 78));
+   Es wird an dem Living die Property als mindestens 3-elementiges Array
+   ({zeitpunkt, objekt, methode, ...})
+   gesetzt und die Methode 'methode' wird dann waehrend des Attack() des
+   Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
 
-         // setzen des Modifiers .. 30-40 Sekunden gueltig
-         TP->SetProp(P_TMP_ATTACK_MOD,
-	              ({time()+30+random(10), this_object(), "modfun"}));
-        } else ...
-        ...
-      return 1;
-     }
+   Der Methode wird beim Aufruf ein Kopie des Mappings uebergeben, in dem
+   die bisherigen Werte des Angriffes vermerkt sind.
+   Aufbau von Mapping 'ainfo':
+   ([ SI_ENEMY :           object Angreifer,                  (-> Defend)
+      SI_SPELL :           0/1/array Spellparameter,          (-> Defend)
+      P_WEAPON :           - oder Waffe,
+      SI_SKILLDAMAGE_MSG:  string Angriffsmeldungsende an Raum,
+      SI_SKILLDAMAGE_MSG2: string Angriffsmeldungsende an Kaempfende,
+      SI_SKILLDAMAGE:      int Schaden in Zehntel HP (Skills bis auf Rasse
+                           drin!)                             (-> Defend),
+      SI_SKILLDAMAGE_TYPE: string/string* Schadenstypen,      (-> Defend)
+      P_WEAPON_TYPE:       string Waffentyp (combat.h),
+      P_WC:                - oder int WC der Waffe/Hand,
+      P_NR_HANDS:          - oder int Hands der Waffe/Hand,
+   ]);
 
-     // die eigentlich Methode, die waehrend des Angriffs gerufen wird
-     mapping modfun(mapping ainfo) {
-       mapping ret;
+   Gibt die Methode:
+   - 0 oder kein Mapping zurueck, fuehrt das zum Abbruch der Attacke
+     -> da inzwischen Waffen abgefragt wurden, koennen schon Meldungen
+        von diesen ausgegeben worden sein
+   - ein leeres Mapping ( ([]) ) zurueck, fuehrt das zu keiner Modifikation
+   - ein Mapping mit veraenderten Werten zurueck, werden diese in das
+     Angriffsmapping kopiert
+     Die geaenderten Werte werden teilweise von SkillResTransfer() in
+     den eigentlichen Angriff uebernommen.
 
-       // Returnwert ist immer ein Mapping, damit die Attacke weitergeht
-       ret=m_allocate(0,1);
 
-       // magische Waffen oder Sprueche werden nicht verbessert
-       if(ainfo[P_WEAPON_TYPE]!=WT_MAGIC) {
-         // sonst Verbesserungen ... Feuer addieren ...
-         ret[SI_SKILLDAMAGE_TYPE]=(ainfo[SI_SKILLDAMAGE_TYPE]||({}))+
-				({DT_FIRE});
-	 // ... und bei Waffe Meldungen anpassen
-         if(ainfo[P_WEAPON]) {
-           ret[SI_SKILLDAMAGE_MSG]=
-             " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
-           ret[SI_SKILLDAMAGE_MSG2]=
-             " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
-         }
+BEMERKUNGEN
+===========
+
+   - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+     Property auf 0 gesetzt
+   - vor dem Setzen immer auf die Existenz eines gueltigen Modifiers
+     pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+     im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIELE
+=========
+
+   *** ein besonder heisser Segen modifiziert die Attacken des Spielers ***
+   int action_segen() {
+     ...
+     mixed *tmp;
+
+     // pruefen, ob nicht ein anderer Modifier existiert
+     if(!pointerp(tmp=TP->QueryProp(P_TMP_ATTACK_MOD)) ||
+        sizeof(tmp)<3 || tmp[0]<=time()) {
+
+       object wield;
+       wield=TP->QueryProp(P_WEAPON);
+
+       write(break_string(
+         "Der Priester der Flamme weiht "+
+         (wield?wield->name(WEN,1):"deine Haende")+".", 78));
+
+       // setzen des Modifiers .. 30-40 Sekunden gueltig
+       TP->SetProp(P_TMP_ATTACK_MOD,
+                    ({time()+30+random(10), this_object(), "modfun"}));
+      } else ...
+      ...
+    return 1;
+   }
+
+   // die eigentlich Methode, die waehrend des Angriffs gerufen wird
+   mapping modfun(mapping ainfo) {
+     mapping ret;
+
+     // Returnwert ist immer ein Mapping, damit die Attacke weitergeht
+     ret=m_allocate(0,1);
+
+     // magische Waffen oder Sprueche werden nicht verbessert
+     if(ainfo[P_WEAPON_TYPE]!=WT_MAGIC) {
+       // sonst Verbesserungen ... Feuer addieren ...
+       ret[SI_SKILLDAMAGE_TYPE]=(ainfo[SI_SKILLDAMAGE_TYPE]||({}))+
+                              ({DT_FIRE});
+       // ... und bei Waffe Meldungen anpassen
+       if(ainfo[P_WEAPON]) {
+         ret[SI_SKILLDAMAGE_MSG]=
+           " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
+         ret[SI_SKILLDAMAGE_MSG2]=
+           " mit sengendem "+ainfo[P_WEAPON]->name(RAW);
        }
-
-       return ret;
      }
 
-SIEHE AUCH:
-     Angriff:	Attack(L)
-     Schutz:    Defend(L)
-     Verwandt:  InternalModifyAttack(L)
-		P_TMP_ATTACK_HOOK
-		P_TMP_DEFEND_HOOK
-     Sonstiges: SkillResTransfer(L)
-     Hooks:	P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK
+     return ret;
+   }
+
+
+SIEHE AUCH
+==========
+
+   Angriff:   Attack(L)
+   Schutz:    Defend(L)
+   Verwandt:  InternalModifyAttack(L)
+              P_TMP_ATTACK_HOOK
+              P_TMP_DEFEND_HOOK
+   Sonstiges: SkillResTransfer(L)
+   Hooks:     P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK
 
 10.Feb 2005 Gloinson
diff --git a/doc/props/obsolete/P_TMP_DEFEND_HOOK b/doc/props/obsolete/P_TMP_DEFEND_HOOK
index 986e63a..f29d342 100644
--- a/doc/props/obsolete/P_TMP_DEFEND_HOOK
+++ b/doc/props/obsolete/P_TMP_DEFEND_HOOK
@@ -1,110 +1,131 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
 P_TMP_DEFEND_HOOK
+*****************
 
-NAME:
-     P_TMP_DEFEND_HOOK             "defend_hook"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_DEFEND_HOOK
 
-DEFINIERT IN:
-     /sys/new_skills.h
 
-BESCHREIBUNG:
-     Mittels dieser Property koennen die Abwehren eines Livings temporaer
-     veraendert werden.
+NAME
+====
 
-     Es wird an dem Living die Property als mindestens 3-elementiges Array
-     ({zeitpunkt, objekt, methode, ...})
-     gesetzt und die Methode 'methode' wird dann waehrend des Defend() des
-     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+   P_TMP_DEFEND_HOOK             "defend_hook"
 
-     Der Methode werden die Parameter der Defend() uebergeben:
-     int dam, mixed dam_type, mixed spell, object enemy
-     - spell ist definitiv ein Mapping - ein an Defend() uebergebener
-       int-Wert wurde aequivalent umgesetzt.
-     - dam_type ist definitiv ein Array von Schadenswerten oder einem Wert
 
-     Zudem findet der Aufruf der Methode nach dem Abarbeiten der P_DEFENDERS
-     statt, diese koennen also weitere Modifikationen vorgenommen haben.
+DEFINIERT IN
+============
 
-     Gibt die Funktion:
-     - 0 zurueck, wird Defend() abgebrochen (und damit der Schaden voellig
-       abgefangen) - nur noch die Flucht wird geprueft
-     - ein 3-elementiges Array ({schaden, schadenstypen, spell}) zurueck,
-       werden diese Werte in der Defend() an Stelle der uebergebenen Werte
-       verwendet
-     - weder noch zurueck, wird das Ergebnis ignoriert und die Defend laeuft
-       regulaer weiter
+   /sys/new_skills.h
 
-BEMERKUNGEN:
-     - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
-     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
-       Property auf 0 gesetzt
-     - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
-       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
-       im Code anderer und ist andererseits unfair gegenueber ihnen
 
-BEISPIEL:
-     *** ein gruener Schutzzauber ***
-     // Setzen der Prop
-     ...
-     tmp=TP->QueryProp(P_TMP_DEFEND_HOOK);
+BESCHREIBUNG
+============
 
-     // ein etwas ausfuehrlicher Check, ob wir ueberschreiben koennen,
-     // Existenz && Gueltigkeit
-     if(pointerp(tmp) && sizeof(tmp) && intp(tmp[0]) && (time()<tmp[0]))
-      write("Der Zauber klappt nicht!\n");
-     else {
-      // der Zauber gilt eine Stunde
-      TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
-      write("Ein Zauber legt sich auf dich.\n");
-     }
-     ...
+   Mittels dieser Property koennen die Abwehren eines Livings temporaer
+   veraendert werden.
 
-     // die gerufene Methode
-     mixed abwehrfun(int dam, string* dam_type, mapping spell, object en) {
-      // keine rekursiven Schaeden abfangen ... mindestens ein magischer
-      // muss auch dabei sein
-      if((!mappingp(spell) || !spell[SP_RECURSIVE]) &&
-         sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+   Es wird an dem Living die Property als mindestens 3-elementiges Array
+   ({zeitpunkt, objekt, methode, ...})
+   gesetzt und die Methode 'methode' wird dann waehrend des Defend() des
+   Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
 
-       // mit 10% Whkeit schuetzt der Zauber total
-       if(!random(10)) {
-        tell_object(previous_object(),
-          "Dein Zauber gleisst rund um dich gruen auf.\n");
-        tell_room(environment(previous_object()), break_string(
-          previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
-          previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
-          ({previous_object()}));
+   Der Methode werden die Parameter der Defend() uebergeben:
+   int dam, mixed dam_type, mixed spell, object enemy
+   - spell ist definitiv ein Mapping - ein an Defend() uebergebener
+     int-Wert wurde aequivalent umgesetzt.
+   - dam_type ist definitiv ein Array von Schadenswerten oder einem Wert
 
-        // manchmal geht der Zauber dabei endgueltig kaputt
-        if(!random(10)) previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
+   Zudem findet der Aufruf der Methode nach dem Abarbeiten der P_DEFENDERS
+   statt, diese koennen also weitere Modifikationen vorgenommen haben.
 
-        return 0;			// volles Abfangen des Angriffs
-       }
+   Gibt die Funktion:
+   - 0 zurueck, wird Defend() abgebrochen (und damit der Schaden voellig
+     abgefangen) - nur noch die Flucht wird geprueft
+   - ein 3-elementiges Array ({schaden, schadenstypen, spell}) zurueck,
+     werden diese Werte in der Defend() an Stelle der uebergebenen Werte
+     verwendet
+   - weder noch zurueck, wird das Ergebnis ignoriert und die Defend laeuft
+     regulaer weiter
 
-       // der Zauber schuetzt auf jeden Fall immer ein bischen
-       tell_object(previous_object(),
-         "Dein Zauber flackert rund um dich gruen auf.\n");
-       tell_room(environment(previous_object()), break_string(
-         previous_object()->Name(WESSEN)+" Haut flackert rund um "+
-         previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
-         ({previous_object()}));
-       dam=(7+random(2))*dam/10;	// Schaden reduzieren
 
-       return(({dam, dam_type, spell}));
-      }
+BEMERKUNGEN
+===========
 
-      // der Zauber schuetzt dann gar nicht ...
-      return 1;
+   - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+   - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+     Property auf 0 gesetzt
+   - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+     pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+     im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIEL
+========
+
+   *** ein gruener Schutzzauber ***
+   // Setzen der Prop
+   ...
+   tmp=TP->QueryProp(P_TMP_DEFEND_HOOK);
+
+   // ein etwas ausfuehrlicher Check, ob wir ueberschreiben koennen,
+   // Existenz && Gueltigkeit
+   if(pointerp(tmp) && sizeof(tmp) && intp(tmp[0]) && (time()<tmp[0]))
+    write("Der Zauber klappt nicht!\n");
+   else {
+    // der Zauber gilt eine Stunde
+    TP->SetProp(P_TMP_DEFEND_HOOK,({time()+3600,TO,"abwehrfun");
+    write("Ein Zauber legt sich auf dich.\n");
+   }
+   ...
+
+   // die gerufene Methode
+   mixed abwehrfun(int dam, string* dam_type, mapping spell, object en) {
+    // keine rekursiven Schaeden abfangen ... mindestens ein magischer
+    // muss auch dabei sein
+    if((!mappingp(spell) || !spell[SP_RECURSIVE]) &&
+       sizeof(filter(dam_type,MAGICAL_DAMAGE_TYPES))) {
+
+     // mit 10% Whkeit schuetzt der Zauber total
+     if(!random(10)) {
+      tell_object(previous_object(),
+        "Dein Zauber gleisst rund um dich gruen auf.\n");
+      tell_room(environment(previous_object()), break_string(
+        previous_object()->Name(WESSEN)+" Haut gleisst rund um "+
+        previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+        ({previous_object()}));
+
+      // manchmal geht der Zauber dabei endgueltig kaputt
+      if(!random(10)) previous_object()->SetProp(P_TMP_DEFEND_HOOK, 0);
+
+      return 0;                       // volles Abfangen des Angriffs
      }
 
-SIEHE AUCH:
-     Angriff:	Attack(L)
-     Schutz:    Defend(L)
-     Verwandt:	InternalModifyDefend(L), P_TMP_ATTACK_MOD
-     Hooks:	P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
-     neue Hooks: std/hooks
+     // der Zauber schuetzt auf jeden Fall immer ein bischen
+     tell_object(previous_object(),
+       "Dein Zauber flackert rund um dich gruen auf.\n");
+     tell_room(environment(previous_object()), break_string(
+       previous_object()->Name(WESSEN)+" Haut flackert rund um "+
+       previous_object()->QueryPronoun(WEN)+" gruen auf.",78),
+       ({previous_object()}));
+     dam=(7+random(2))*dam/10;        // Schaden reduzieren
+
+     return(({dam, dam_type, spell}));
+    }
+
+    // der Zauber schuetzt dann gar nicht ...
+    return 1;
+   }
+
+
+SIEHE AUCH
+==========
+
+   Angriff:   Attack(L)
+   Schutz:    Defend(L)
+   Verwandt:  InternalModifyDefend(L), P_TMP_ATTACK_MOD
+   Hooks:     P_TMP_DIE_HOOK, P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK
+   neue Hooks: std/hooks
 
 08.12.2008, Zesstra
-
diff --git a/doc/props/obsolete/P_TMP_DIE_HOOK b/doc/props/obsolete/P_TMP_DIE_HOOK
index cd18917..f4008cb 100644
--- a/doc/props/obsolete/P_TMP_DIE_HOOK
+++ b/doc/props/obsolete/P_TMP_DIE_HOOK
@@ -1,70 +1,91 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
+
 P_TMP_DIE_HOOK
+**************
 
-NAME:
-    P_TMP_DIE_HOOK                "die_hook"
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+************************************* P_TMP_DIE_HOOK
 
-DEFINIERT IN:
-    /sys/new_skills.h
 
-BESCHREIBUNG:
-     Mittels dieser Property kann der Tod eines Livings abgewendet werden.
+NAME
+====
 
-     Es wird an dem Living die Property als mindestens 3-elementiges Array
-     ({zeitpunkt, objekt, methode, ...})
-     gesetzt und die Methode 'methode' wird dann waehrend des die() des
-     Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
-     Bei Geistern wird der Hook nicht gerufen.
+   P_TMP_DIE_HOOK                "die_hook"
 
-     Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
-     (P_POISON) war.
 
-     Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
-     und das Living stirbt nicht.
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-    - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
-    - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
-      Property auf 0 gesetzt
-    - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
-      pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
-      im Code anderer und ist andererseits unfair gegenueber ihnen
+   /sys/new_skills.h
 
-BEISPIELE:
-     *** ein besonderer Giftschutz .. wirkt beim Tod ***
-     // pruefen, ob nicht ein anderer Modifier existiert
-     if(!pointerp(tmp=TP->QueryProp(P_TMP_DIE_HOOK)) ||
-        sizeof(tmp)<3 || tmp[0]<=time()) {
-       TP->SetProp(P_TMP_DIE_HOOK,
-	           ({time()+120+random(10), this_object(), "prevent_die"}));
 
-     // die gerufene Methode
-     int prevent_die(int poison) {
-       int ret;
+BESCHREIBUNG
+============
 
-       if(poison) {
-         tell_object(previous_object(),
-           "Ein Zauber reinigt im Moment des Todes dein Blut!\n");
-         tell_object(environment(previous_object()),
-           previous_object()->Name(WER,1)+" wird von Lichtern umhuellt.\n",
-           ({previous_object()}));
+   Mittels dieser Property kann der Tod eines Livings abgewendet werden.
 
-         ret=1;
-       }
+   Es wird an dem Living die Property als mindestens 3-elementiges Array
+   ({zeitpunkt, objekt, methode, ...})
+   gesetzt und die Methode 'methode' wird dann waehrend des die() des
+   Lebewesens in 'objekt' aufgerufen, solange time()<'zeitpunkt'.
+   Bei Geistern wird der Hook nicht gerufen.
 
-       // wir helfen nur einmal ... und ein Tod vernichtet die Hilfe auch
-       previous_object()->SetProp(P_TMP_DIE_HOOK, 0);
+   Der Methode wird ein int uebergeben, ob das Living Opfer von Gift
+   (P_POISON) war.
 
-       return ret;
+   Gibt die Funktion einen Wert != 0 zurueck, wird die() sofort abgebrochen
+   und das Living stirbt nicht.
+
+
+BEMERKUNGEN
+===========
+
+   - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+   - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+     Property auf 0 gesetzt
+   - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+     pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+     im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+BEISPIELE
+=========
+
+   *** ein besonderer Giftschutz .. wirkt beim Tod ***
+   // pruefen, ob nicht ein anderer Modifier existiert
+   if(!pointerp(tmp=TP->QueryProp(P_TMP_DIE_HOOK)) ||
+      sizeof(tmp)<3 || tmp[0]<=time()) {
+     TP->SetProp(P_TMP_DIE_HOOK,
+                 ({time()+120+random(10), this_object(), "prevent_die"}));
+
+   // die gerufene Methode
+   int prevent_die(int poison) {
+     int ret;
+
+     if(poison) {
+       tell_object(previous_object(),
+         "Ein Zauber reinigt im Moment des Todes dein Blut!\n");
+       tell_object(environment(previous_object()),
+         previous_object()->Name(WER,1)+" wird von Lichtern umhuellt.\n",
+         ({previous_object()}));
+
+       ret=1;
      }
 
-SIEHE AUCH:
-     Tod:	die(L)
-     Sonstiges: P_POISON, P_KILLS, P_GHOST
-     Hooks:	P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK, P_TMP_DEFEND_HOOK
-     neue Hooks: std/hooks
+     // wir helfen nur einmal ... und ein Tod vernichtet die Hilfe auch
+     previous_object()->SetProp(P_TMP_DIE_HOOK, 0);
+
+     return ret;
+   }
+
+
+SIEHE AUCH
+==========
+
+   Tod:       die(L)
+   Sonstiges: P_POISON, P_KILLS, P_GHOST
+   Hooks:     P_TMP_MOVE_HOOK, P_TMP_ATTACK_HOOK, P_TMP_DEFEND_HOOK
+   neue Hooks: std/hooks
 
 08.12.2008, Zesstra
-
diff --git a/doc/props/obsolete/P_TMP_MOVE_HOOK b/doc/props/obsolete/P_TMP_MOVE_HOOK
index c28a067..8f1aa77 100644
--- a/doc/props/obsolete/P_TMP_MOVE_HOOK
+++ b/doc/props/obsolete/P_TMP_MOVE_HOOK
@@ -1,42 +1,65 @@
-********************* VERALTETE PROPERTY ******************************
-* Diese Property ist veraltet. Bitte nicht mehr in neuem Code nutzen. *
-***********************************************************************
-NAME:
-    P_TMP_MOVE_HOOK             "move_hook"
 
-DEFINIERT IN:
-    /sys/new_skills.h
+P_TMP_MOVE_HOOK
+***************
 
-BESCHREIBUNG:
-    Mindestens 3-elementiges Array ({zeitpunkt, objekt, funktion, ...}).
-    Die Funktion wird im 'objekt' mit den gleichen Parametern wie move()
-    nach der Abfrage auf P_NO_TPORT aufgerufen, wenn der 'zeitpunkt'
-    noch nicht ueberschritten ist. Wenn die Funktion etwas anderes als ein
-    5-elementiges Array ({dest, methods, direction, textout, textin})
-    oder -1 zurueckgibt, wird move() normal ausgefuehrt, ansonsten werden die
-    5 move-Parameter durch die Array-Eintraege ersetzt bzw. wird bei einem
-    Rueckgabewert von -1 das move() abgebrochen. In letzterem Fall ist
-    die Funktion dafuer verantwortlich, eine entspr. Meldung an den
-    Spieler auszugeben!
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+nicht mehr in neuem Code nutzen. * **********************************
+*************************************
 
-HINWEIS:
-    Falls man einem Spieler einen Move-Hook setzt, ist es ratsam, im
-    Move-Hook zu pruefen, ob das Spielerobjekt nach Abarbeitung der Hook-
-    Funktion noch lebt. Ansonsten wird ein doppeltes move() ausgefuehrt:
-    in den Todesraum und direkt wieder zurueck zur Leiche.
 
-BEMERKUNGEN:
-     - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
-     - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
-       Property auf 0 gesetzt
-     - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
-       pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
-       im Code anderer und ist andererseits unfair gegenueber ihnen
+NAME
+====
 
-SIEHE AUCH:
-     Bewegung:	move(L), NotifyMove(), PreventMove()
-     Hooks:	P_TMP_DIE_HOOK, P_TMP_DEFEND_HOOK, P_TMP_ATTACK_HOOK
-     neue Hooks: std/hooks
+   P_TMP_MOVE_HOOK             "move_hook"
 
-----------------------------------------------------------------------------
+
+DEFINIERT IN
+============
+
+   /sys/new_skills.h
+
+
+BESCHREIBUNG
+============
+
+   Mindestens 3-elementiges Array ({zeitpunkt, objekt, funktion, ...}).
+   Die Funktion wird im 'objekt' mit den gleichen Parametern wie move()
+   nach der Abfrage auf P_NO_TPORT aufgerufen, wenn der 'zeitpunkt'
+   noch nicht ueberschritten ist. Wenn die Funktion etwas anderes als ein
+   5-elementiges Array ({dest, methods, direction, textout, textin})
+   oder -1 zurueckgibt, wird move() normal ausgefuehrt, ansonsten werden die
+   5 move-Parameter durch die Array-Eintraege ersetzt bzw. wird bei einem
+   Rueckgabewert von -1 das move() abgebrochen. In letzterem Fall ist
+   die Funktion dafuer verantwortlich, eine entspr. Meldung an den
+   Spieler auszugeben!
+
+
+HINWEIS
+=======
+
+   Falls man einem Spieler einen Move-Hook setzt, ist es ratsam, im
+   Move-Hook zu pruefen, ob das Spielerobjekt nach Abarbeitung der Hook-
+   Funktion noch lebt. Ansonsten wird ein doppeltes move() ausgefuehrt:
+   in den Todesraum und direkt wieder zurueck zur Leiche.
+
+
+BEMERKUNGEN
+===========
+
+   - Bitte das neuere Hooksystem (s. Manpage std/hooks) benutzen.
+   - falls die Zeit abgelaufen oder das Objekt zerstoert ist, wird die
+     Property auf 0 gesetzt
+   - vor dem Setzen immer auf die Existenz eines gueltigen Hooks
+     pruefen, einfaches Ueberschreiben fuehrt einerseits zu Fehlern
+     im Code anderer und ist andererseits unfair gegenueber ihnen
+
+
+SIEHE AUCH
+==========
+
+   Bewegung:  move(L), NotifyMove(), PreventMove()
+   Hooks:     P_TMP_DIE_HOOK, P_TMP_DEFEND_HOOK, P_TMP_ATTACK_HOOK
+   neue Hooks: std/hooks
+
 08.12.2008, Zesstra
diff --git a/doc/props/skill_info_liste b/doc/props/skill_info_liste
index 011f616..a8ad089 100644
--- a/doc/props/skill_info_liste
+++ b/doc/props/skill_info_liste
@@ -1,315 +1,355 @@
+
+skill_info_liste
+****************
+
+
 SI_*
-DEFINIERT IN:
-    /sys/newskills.h
+====
 
-BESCHREIBUNG:
-    Die folgende Liste der SI-Typen ist grob nach Gueltigkeit fuer Skills
-    und Spells sortiert.
-    
-    Anwendungsorte der SI_-Werte sind:
-    - /std/living/combat und von dort gerufene Skills (Kampf)
-    - /std/gilden_ob und in Gilden lernbare Spells/Skills
-    - /std/spellbook und von Spellbooks ausgefuehrte Spells
-    - /std/living/life und von dort gerufene Skills (Alkohol)
-    - /std/shells/* und entsprechende Rassenskills
 
-    Im Skillsystem unter /std/living/skills wird vor auf Informationen
-    aus dem Teil #1 Ruecksicht genommen. Einige dieser Werte
-    werden auch permanent im Spieler gespeichert (wie zB die
-    SI_SKILLABILITY).
+DEFINIERT IN
+============
+
+   /sys/newskills.h
+
+
+BESCHREIBUNG
+============
+
+   Die folgende Liste der SI-Typen ist grob nach Gueltigkeit fuer Skills
+   und Spells sortiert.
+
+
+
+   Anwendungsorte der SI_-Werte sind:
+   - /std/living/combat und von dort gerufene Skills (Kampf)
+   - /std/gilden_ob und in Gilden lernbare Spells/Skills
+   - /std/spellbook und von Spellbooks ausgefuehrte Spells
+   - /std/living/life und von dort gerufene Skills (Alkohol)
+   - /std/shells/* und entsprechende Rassenskills
+
+   Im Skillsystem unter /std/living/skills wird vor auf Informationen
+   aus dem Teil #1 Ruecksicht genommen. Einige dieser Werte
+   werden auch permanent im Spieler gespeichert (wie zB die
+   SI_SKILLABILITY).
 
 AKTUELLE LISTE: (5. Oktober 2011)
- #1 Skills und Spells:
-    SI_SKILLFUNC: string
-     Beinhaltet den Namen der Methode, die die eigentliche Funktionalitaet
-     des Skills/Spells implementiert.
-     Falls nicht angegeben, wird bei Spells durch UseSpell() das Verb, das
-     der Spieler eingegeben hat, als Spell-Methodenname angenommen.
-     Im Gildenobjekt kann hier abweichend von Spell-Namen stehen, wie die
-     Spellfunktion im Spellbook heisst.
+   #1 Skills und Spells:
+      SI_SKILLFUNC: string
+         Beinhaltet den Namen der Methode, die die eigentliche
+         Funktionalitaet des Skills/Spells implementiert. Falls nicht
+         angegeben, wird bei Spells durch UseSpell() das Verb, das der
+         Spieler eingegeben hat, als Spell-Methodenname angenommen. Im
+         Gildenobjekt kann hier abweichend von Spell-Namen stehen, wie
+         die Spellfunktion im Spellbook heisst.
 
-    SI_CLOSURE: closure
-     Optimiert den Zugriff fuer den internen Gebrauch, indem die gefundene
-     Spell/Skillfunktion darin direkt gespeichert wird und so lange gueltig
-     ist, bis das/die Objekt(e)/Closure(s) zerstoert sind.
-     Kann theoretisch auch fuer externe Skills durch (Autoload-)Objekte
-     benutzt werden.
+      SI_CLOSURE: closure
+         Optimiert den Zugriff fuer den internen Gebrauch, indem die
+         gefundene Spell/Skillfunktion darin direkt gespeichert wird
+         und so lange gueltig ist, bis das/die Objekt(e)/Closure(s)
+         zerstoert sind. Kann theoretisch auch fuer externe Skills
+         durch (Autoload-)Objekte benutzt werden.
 
-    SI_SKILLABILITY: int
-     Faehigkeit, den Spell/Skill zu benutzen. Normal ist von
-     -MAX_ABILITY bis MAX_ABILITY.
+      SI_SKILLABILITY: int
+         Faehigkeit, den Spell/Skill zu benutzen. Normal ist von
+         -MAX_ABILITY bis MAX_ABILITY.
 
-    SI_SKILLDAMAGE_TYPE: string*
-     Art des Schadens eines Angriffs: siehe Schadenstypen in /sys/combat.h
+      SI_SKILLDAMAGE_TYPE: string*
+         Art des Schadens eines Angriffs: siehe Schadenstypen in
+         /sys/combat.h
 
-    SI_SKILLDAMAGE_MSG: string
-     Meldung anstatt der Waffe oder Haende-Meldung.
-    SI_SKILLDAMAGE_MSG2: string
-     Meldung anstatt der Waffe oder Haende-Meldung fuer den Raum.
+      SI_SKILLDAMAGE_MSG: string
+         Meldung anstatt der Waffe oder Haende-Meldung.
 
-    SI_INHERIT: string
-     Enthaelt den Namen des Skills/Spells, von dem geerbt wird. Das
-     bedeutet einerseits, das LearnSkill() auch diesen uebergeordneten
-     Skill beeinflusst und andererseits, dass bei Skills auch dieser
-     uebergeordnete Skill im Rahmen einer Skill-Anwendung gerufen wird.
+      SI_SKILLDAMAGE_MSG2: string
+         Meldung anstatt der Waffe oder Haende-Meldung fuer den Raum.
 
-    SI_DIFFICULTY: int / [Spells: mixed]
-     Schwierigkeit eines Skills/Spells. Beeinflusst die jeweils oberen
-     Schranken fuer das Lernen eines Skills/Spells in Abhaengigkeit 
-     von Spielerlevel.
-     Wenn in einem Spell-Info-Mapping kein Wert steht wird bei Spells
-     automatisch SI_SPELLCOST genommen, der Wert im Spell-Info-Mapping
-     geht beim Lernen aber immer vor Parametern.
-    FACTOR(SI_DIFFICULTY): int / mixed
-    OFFSET(SI_DIFFICULTY): int / mixed
-     Nur fuer Spellbooks/Spells. Der mixed-Parameter kann Funktionen
-     enthalten. Siehe unten bei SI_SPELLCOST.
+      SI_INHERIT: string
+         Enthaelt den Namen des Skills/Spells, von dem geerbt wird.
+         Das bedeutet einerseits, das LearnSkill() auch diesen
+         uebergeordneten Skill beeinflusst und andererseits, dass bei
+         Skills auch dieser uebergeordnete Skill im Rahmen einer
+         Skill-Anwendung gerufen wird.
 
-    SI_LASTLIGHT: int
-     Zeitpunkt, bis wann der Standardskills SK_NIGHTVISION den Spieler
-     sehen laesst.
+      SI_DIFFICULTY: int / [Spells: mixed]
+         Schwierigkeit eines Skills/Spells. Beeinflusst die jeweils
+         oberen Schranken fuer das Lernen eines Skills/Spells in
+         Abhaengigkeit von Spielerlevel. Wenn in einem Spell-Info-
+         Mapping kein Wert steht wird bei Spells automatisch
+         SI_SPELLCOST genommen, der Wert im Spell-Info-Mapping geht
+         beim Lernen aber immer vor Parametern.
 
-    SI_TESTFLAG: int
-     Wenn gesetzt, dann soll der Skill nicht genutzt, sondern nur getestet
-     werden, ob er erfolgreich waere. Entspricht also in etwa dem Aufruf
-     von SpellSuccess() in Spellbooks, wird aber bei UseSkill() als
-     Skill-Parameter uebergeben.
-     Der Skill muss entsprechend implementiert sein!
+      FACTOR(SI_DIFFICULTY): int / mixed OFFSET(SI_DIFFICULTY): int /
+      mixed
 
-    SI_GUILD: string
-     Angabe der Gilde, aus der der Skill stammt. Sinnvoll, wenn der Skill
-     nicht aus der aktuellen P_GUILD stammt. Fuer generelle Skills/Spells
-     zB waere das "ANY".
-     Gilt nicht fuer Spells!
+         Nur fuer Spellbooks/Spells. Der mixed-Parameter kann
+         Funktionen enthalten. Siehe unten bei SI_SPELLCOST.
 
-    SI_ENEMY: object
-     Aktuelles Feindesobjekt, wird bei Skill-Anwendung aus dem Kampf heraus
-     von std/living/combat.c an den Skill uebergeben.
-     Beispiel: Standardwaffenskills, SK_MAGIC_DEFENSE, SK_MAGIC_ATTACK,
-               SK_TWOHANDED, SK_SPELL_DEFEND, SK_INFORM_DEFEND und
-               SK_DEFEND_OTHER.
+      SI_LASTLIGHT: int
+         Zeitpunkt, bis wann der Standardskills SK_NIGHTVISION den
+         Spieler sehen laesst.
 
-    SI_FRIEND: object
-     Zu verteidigendes Freundesobjekt, wird bei Skill-Anwendung aus dem
-     Kampf heraus von std/living/combat.c an den Skill uebergeben.
-     Beispiele: SK_INFORM_DEFEND und SK_DEFEND_OTHER.
+      SI_TESTFLAG: int
+         Wenn gesetzt, dann soll der Skill nicht genutzt, sondern nur
+         getestet werden, ob er erfolgreich waere. Entspricht also in
+         etwa dem Aufruf von SpellSuccess() in Spellbooks, wird aber
+         bei UseSkill() als Skill-Parameter uebergeben. Der Skill muss
+         entsprechend implementiert sein!
 
-    SI_MAGIC_TYPE: string*
-     Enthaelt ein Array der Magietypen, die zum Einsatz kommen. Die Angabe
-     geschieht zB im Spellbook und beeinflusst SpellDefend().
+      SI_GUILD: string
+         Angabe der Gilde, aus der der Skill stammt. Sinnvoll, wenn
+         der Skill nicht aus der aktuellen P_GUILD stammt. Fuer
+         generelle Skills/Spells zB waere das "ANY". Gilt nicht fuer
+         Spells!
 
-    SI_LAST_USE: int (eventuell obsolet)
-     Letzte Nutzung des Skills.
-    
-    SI_LEARN_PROB: int (eventuell obsolet)
-     Lernwahrscheinlichkeit.
+      SI_ENEMY: object
+         Aktuelles Feindesobjekt, wird bei Skill-Anwendung aus dem
+         Kampf heraus von std/living/combat.c an den Skill uebergeben.
+         Beispiel: Standardwaffenskills, SK_MAGIC_DEFENSE,
+         SK_MAGIC_ATTACK,
 
-    SI_SKILLDURATION: int
-     Dauer des Skills/Spells. Momentan nicht allzu verbreitet in Nutzung.
+            SK_TWOHANDED, SK_SPELL_DEFEND, SK_INFORM_DEFEND und
+            SK_DEFEND_OTHER.
 
- #2 nur fuer Spells:
-    SI_SPELLBOOK: string
-     Kann direkt das enthaltende Spellbook fuer einen Spell enthalten.
+      SI_FRIEND: object
+         Zu verteidigendes Freundesobjekt, wird bei Skill-Anwendung
+         aus dem Kampf heraus von std/living/combat.c an den Skill
+         uebergeben. Beispiele: SK_INFORM_DEFEND und SK_DEFEND_OTHER.
 
-    SM_RACE: mapping
-      Mapping, das als Key die Rasse und als Value ein Mapping X
-      enthaelt. Dieses Mapping X wird direkt zu sinfo hinzugefuegt und
-      ueberschreibt damit bei Bedarf Defaultwerte durch rassenspezifische
-      Werte.
+      SI_MAGIC_TYPE: string*
+         Enthaelt ein Array der Magietypen, die zum Einsatz kommen.
+         Die Angabe geschieht zB im Spellbook und beeinflusst
+         SpellDefend().
 
-    SI_SPELLCOST: int / mixed
-    FACTOR(SI_SPELLCOST): int / mixed
-    OFFSET(SI_SPELLCOST): int / mixed
-     Beinhaltet die Werte, die fuer die Berechnung der Spellkosten
-     zustaendig sind.
-     Dabei gilt: Realkosten = OFFSET(COST) + (COST * FACTOR(COST))/100
-     Die einzelnen Eintraege koennen anstatt eines fixen Wertes auch den
-     Verweis auch eine Funktion in Form von Closure/Methodenname/Array mit
-     Objekt/Objektname und Methodenname enthalten. Siehe dazu auch
-     execute_anything().
+      SI_LAST_USE: int (eventuell obsolet)
+         Letzte Nutzung des Skills.
 
-    SI_TIME_MSG: string
-     Meldung, die dem Spieler mitteilt, dass er noch nicht wieder einen
-     Spell casten kann. Falls dieser Eintrag nicht gesetzt ist, wird
-     ein Standardtext ausgegeben.
+      SI_LEARN_PROB: int (eventuell obsolet)
+         Lernwahrscheinlichkeit.
 
-    SI_SP_LOW_MSG: string
-     Meldung, die dem Spieler mitteilt, dass er zu wenige
-     Konzentrationspunkte besitzt, um den Spell zu casten. Falls dieser
-     Eintrag nicht gesetzt ist, wird ein Standardtext ausgegeben.
+      SI_SKILLDURATION: int
+         Dauer des Skills/Spells. Momentan nicht allzu verbreitet in
+         Nutzung.
 
-    SI_PREPARE_MSG: string
-     Meldung, die dem Spieler ausgegeben werden soll, wenn er einen Spell
-     vorbereitet. Ansonsten wird ein Standardtext ausgegeben.
+   #2 nur fuer Spells:
+      SI_SPELLBOOK: string
+         Kann direkt das enthaltende Spellbook fuer einen Spell
+         enthalten.
 
-    SI_PREPARE_BUSY_MSG: string
-     Meldung, die dem Spieler ausgegeben werden soll, wenn er schon diesen
-     Spell vorbereitet. Ansonsten wird ein Standardtext ausgegeben.
+      SM_RACE: mapping
+         Mapping, das als Key die Rasse und als Value ein Mapping X
+         enthaelt. Dieses Mapping X wird direkt zu sinfo hinzugefuegt
+         und ueberschreibt damit bei Bedarf Defaultwerte durch
+         rassenspezifische Werte.
 
-    SI_PREPARE_ABORT_MSG: string
-     Meldung, die dem Spieler ausgegeben werden soll, wenn er die
-     Vorbereitung dieses Spells durch einen anderen Spell unterbricht.
-     Ansonsten wird ein Standardtext ausgegeben.
+      SI_SPELLCOST: int / mixed FACTOR(SI_SPELLCOST): int / mixed
+      OFFSET(SI_SPELLCOST): int / mixed
 
-    SI_NOMAGIC: int
-     Wert zwischen 0 und 100 (oder mehr), der gegen die P_NOMAGIC-Wirkung
-     eines Raumes wirkt.
-     Je hoeher der Wert ist, desto unwahrscheinlicher ist es, dass ein
-     Raum den Spell durch Antimagie stoert. Ein Raum sollte nur Werte
-     zwischen 0 und 100 gesetzt haben. Ist der Wert des Raums groesser
-     als der hier angegeben, dann blockiert er Magie mit einer gewissen
-     eben seiner angegebenen Wahrscheinlichkeit.
+         Beinhaltet die Werte, die fuer die Berechnung der Spellkosten
+         zustaendig sind. Dabei gilt: Realkosten = OFFSET(COST) +
+         (COST * FACTOR(COST))/100 Die einzelnen Eintraege koennen
+         anstatt eines fixen Wertes auch den Verweis auch eine
+         Funktion in Form von Closure/Methodenname/Array mit
+         Objekt/Objektname und Methodenname enthalten. Siehe dazu auch
+         execute_anything().
 
-    SI_NOMAGIC_MSG: string
-     Meldung, die bei Fehlschlag durch P_NOMAGIC des Raumes ausgegeben
-     wird. Ansonsten wird ein Standardtext ausgegeben.
-      
-    SI_SPELLFATIGUE: int / mixed
-    FACTOR(SI_SPELLFATIGUE): int / mixed
-    OFFSET(SI_SPELLFATIGUE): int / mixed
-     Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt werden.
-     Die Berechnung und die moeglichen Angaben (Closure etc.) sind
-     identisch zu SI_SPELLCOST.
-     Das Spellbook gibt bei Nicht-Wieder-Bereitschaft SI_TIME_MSG aus.
+      SI_TIME_MSG: string
+         Meldung, die dem Spieler mitteilt, dass er noch nicht wieder
+         einen Spell casten kann. Falls dieser Eintrag nicht gesetzt
+         ist, wird ein Standardtext ausgegeben.
 
-    SI_X_SPELLFATIGUE: mapping mit ([string key: int val])
-     Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt werden.
-     Spellbook-Casten: Mapping wird durch Aufruf von CheckSpellFatigue(<key>)
-     am Caster gefiltert. Nur wenn das resultierende Mapping leer ist (kein
-     <key> hat einen gueltigen Fatigue-Eintrag), ist Spell castbar, sonst
-     Ausgabe von SI_TIME_MSG.
-     Nach Spellbook-Casten: Setzen der Fatigue fuer alle <val> > 0 mit <key>.
+      SI_SP_LOW_MSG: string
+         Meldung, die dem Spieler mitteilt, dass er zu wenige
+         Konzentrationspunkte besitzt, um den Spell zu casten. Falls
+         dieser Eintrag nicht gesetzt ist, wird ein Standardtext
+         ausgegeben.
 
-    SI_SKILLLEARN: int / mixed
-    FACTOR(SI_SKILLLEARN): int / mixed
-    OFFSET(SI_SKILLLEARN): int / mixed
-     Werte, die fuer die Berechnung der Lerngeschwindigkeit benutzt
-     werden, normalerweise pro A_INT/2 je 0.01% (also 1 von MAX_ABILITY).
-     Die Berechnung und die moeglichen Angaben (Closure etc.) sind
-     identisch zu SI_SPELLCOST.
+      SI_PREPARE_MSG: string
+         Meldung, die dem Spieler ausgegeben werden soll, wenn er
+         einen Spell vorbereitet. Ansonsten wird ein Standardtext
+         ausgegeben.
 
-    SI_LEARN_ATTRIBUTE: mapping
-     Mapping, welches die Attribute, nach denen gelernt werden soll
-     als Keys enthaelt. Der Value legt die Gewichtung fest, denn bei
-     mehreren Attributen wird ein Mittelwert gebildet.
-     Der Normalfall entspraeche ([A_INT: 1]) fuer SI_LEARN_ATTRIBUTE.
+      SI_PREPARE_BUSY_MSG: string
+         Meldung, die dem Spieler ausgegeben werden soll, wenn er
+         schon diesen Spell vorbereitet. Ansonsten wird ein
+         Standardtext ausgegeben.
 
-    SI_NO_LEARN
-     Wenn man (temporaer!) nicht will, dass dieser Skill gelernt wird.
-     Muss von den Spellbooks beachtet werden.
-     Sollte niemals im Spieler abgespeichert werden. Oder permanent in
-     Gilde/Spellbook gesetzt sein. Sondern im Laufe einesr Nutzung in der
-     jew. Kopie von sinfo gesetzt werden, die gerade genutzt wird.
-    
-     SI_SKILLARG: string
-     Beinhaltet den Text, den der Spieler nach dem Spellkommando eingegeben
-     hat. Z.B. stuende bei "krallenschlag ork 2" der Text "ork 2" im
-     Parameter.
+      SI_PREPARE_ABORT_MSG: string
+         Meldung, die dem Spieler ausgegeben werden soll, wenn er die
+         Vorbereitung dieses Spells durch einen anderen Spell
+         unterbricht. Ansonsten wird ein Standardtext ausgegeben.
 
-    SI_SKILLRESTR_USE: mixed
-     Einschraenkungen fuer das Nutzen des Spells.
-     Wird normalerweise direkt im Spellbook fuer den Spell eingetragen.
-     Die einzelnen Moeglichkeiten werden in der manpage zu
-     "check_restrictions" erlaeutert.
-     
-    SI_SKILLRESTR_LEARN: mixed
-     Einschraenkungen fuer das Lernen des Spells.
-     Wird normalerweise direkt im Gildenobjekt fuer den Spell
-     eingetragen.
-     Die einzelnen Moeglichkeiten werden in der manpage zu
-     "check_restrictions" erlaeutert.
+      SI_NOMAGIC: int
+         Wert zwischen 0 und 100 (oder mehr), der gegen die P_NOMAGIC-
+         Wirkung eines Raumes wirkt. Je hoeher der Wert ist, desto
+         unwahrscheinlicher ist es, dass ein Raum den Spell durch
+         Antimagie stoert. Ein Raum sollte nur Werte zwischen 0 und
+         100 gesetzt haben. Ist der Wert des Raums groesser als der
+         hier angegeben, dann blockiert er Magie mit einer gewissen
+         eben seiner angegebenen Wahrscheinlichkeit.
 
-    SI_SKILLINFO: string
-    SI_SKILLINFO_LONG: string
-     Beschreibung des Spells. Wird im Gildenobjekt eingetragen und
-     SI_SKILLINFO wird von SkillListe angezeigt.
+      SI_NOMAGIC_MSG: string
+         Meldung, die bei Fehlschlag durch P_NOMAGIC des Raumes
+         ausgegeben wird. Ansonsten wird ein Standardtext ausgegeben.
 
-    SI_SKILLDAMAGE: int / mixed
-    FACTOR(SI_SKILLDAMAGE): int / mixed
-    OFFSET(SI_SKILLDAMAGE): int / mixed
-     Werte, die fuer die Schadenshoehenberechnung des Spells benutzt
-     werden (random ueber den Gesamtwert normalerweise).
-     Die Berechnung und die moeglichen Angaben (Closure etc.) sind
-     identisch zu SI_SPELLCOST.
+      SI_SPELLFATIGUE: int / mixed FACTOR(SI_SPELLFATIGUE): int /
+      mixed OFFSET(SI_SPELLFATIGUE): int / mixed
 
-    SI_SKILLDAMAGE_BY_ROW
-     Ein Mapping mit Boni fuer den Angriff aus bestimmten Kampfreihen.
-     Funktioniert nur bei Verwendung von TryDefaultAttackSpell-Spells
-     aus dem Spellbook.
-     Der Key steht fuer eine bestimmte Reihe, sein Wert fuer den
-     randomisierten Bonus fuer Lebewesen, die aus dieser Reihe casten.
-    OFFSET(SI_SKILLDAMAGE_BY_ROW)
-     Ein Mapping mit fixem Wert fuer Row-Boni im Kampf.
+         Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt
+         werden. Die Berechnung und die moeglichen Angaben (Closure
+         etc.) sind identisch zu SI_SPELLCOST. Das Spellbook gibt bei
+         Nicht-Wieder-Bereitschaft SI_TIME_MSG aus.
 
-     Beispiel: AddSpell("feuerball", 20,
-                        ([SI_SKILLDAMAGE:50,
-                          OFFSET(SI_SKILLDAMAGE):100,
-                          SI_SKILLDAMAGE_BY_ROW:([2:40,3:20}),
-                          OFFSET(SI_SKILLDAMAGE_BY_ROW):([2:20]), ...
-     gibt
-      Reihe 1: random(50)+100;
-      Reihe 2: random(50)+100+random(40)+20
-      Reihe 3: random(50)+100+random(20)
-     ACHTUNG: Hier gilt nicht die selbe Struktur wie bei SI_SPELLCOST!
+      SI_X_SPELLFATIGUE: mapping mit ([string key: int val])
+         Werte, die fuer die Berechnung der Wieder-Cast-Zeit benutzt
+         werden. Spellbook-Casten: Mapping wird durch Aufruf von
+         CheckSpellFatigue(<key>) am Caster gefiltert. Nur wenn das
+         resultierende Mapping leer ist (kein <key> hat einen
+         gueltigen Fatigue-Eintrag), ist Spell castbar, sonst Ausgabe
+         von SI_TIME_MSG. Nach Spellbook-Casten: Setzen der Fatigue
+         fuer alle <val> > 0 mit <key>.
 
-    SI_SPELL: mapping
-     Dieser Eintrag enthaelt verschiedene Unterwerte, die den Spell
-     gerade fuer Angriffs-Spells genauer beschreiben. Siehe Defend()
-     fuer eine Beschreibung der verschiedenen Eintraege (die so auch
-     in das Spellbook uebernommen werden koennen).
+      SI_SKILLLEARN: int / mixed FACTOR(SI_SKILLLEARN): int / mixed
+      OFFSET(SI_SKILLLEARN): int / mixed
 
-    SI_COLLATERAL_DAMAGE: int
-     Hiermit kann man einen Prozentwert von SI_SKILLDAMAGE (inklusive
-     Offsets und Factor) fuer Kollateralschaden an Freunden im definierten
-     Bereich eines Flaechenspells (TryGlobalAttackSpell()) angeben.
-     10 bedeutet bei OFFSET(SI_SKILLDAMAGE)=100 zB 10% von 100 = 10 = 1 LP
-     an mit reduce_hit_points() verursachtem Schaden.
-    
-    SI_NUMBER_ENEMIES, SI_NUMBER_FRIENDS: int
-     Wird von TryGlobalAttackSpell() im Spell gesetzt und enthaelt die
-     Anzahl der im angegebenen Bereich befindlichen Feinde und Freunde.
-     Ist dementsprechend von informativem Nutzen fuer den Angegriffenen
-     und das Spellbook NACH Aufruf von TryGlobalAttackSpell().
-    
-    SI_DISTANCE, SI_WIDTH, SI_DEPTH: int
-     Limitiert die Entfernung, Tiefen und Breite der Wirkung eines
-     TryGlobalAttackSpell()
+         Werte, die fuer die Berechnung der Lerngeschwindigkeit
+         benutzt werden, normalerweise pro A_INT/2 je 0.01% (also 1
+         von MAX_ABILITY). Die Berechnung und die moeglichen Angaben
+         (Closure etc.) sind identisch zu SI_SPELLCOST.
 
-    SI_SKILLHEAL: int
-     Konvention fuer Spells im Spellbook, dort den Heilwert zu hinterlegen,
-     hat keine Auswirkungen unter /std/.
+      SI_LEARN_ATTRIBUTE: mapping
+         Mapping, welches die Attribute, nach denen gelernt werden
+         soll als Keys enthaelt. Der Value legt die Gewichtung fest,
+         denn bei mehreren Attributen wird ein Mittelwert gebildet.
+         Der Normalfall entspraeche ([A_INT: 1]) fuer
+         SI_LEARN_ATTRIBUTE.
 
-    SI_USR: mixed
-     Fuer selbst definierte Infos, spellbookabhaengig.
+      SI_NO_LEARN
+         Wenn man (temporaer!) nicht will, dass dieser Skill gelernt
+         wird. Muss von den Spellbooks beachtet werden. Sollte niemals
+         im Spieler abgespeichert werden. Oder permanent in
+         Gilde/Spellbook gesetzt sein. Sondern im Laufe einesr Nutzung
+         in der jew. Kopie von sinfo gesetzt werden, die gerade
+         genutzt wird.
 
-    SI_PREPARE_TIME: int
-     Dauer der Zeit fuer zu praeparierende Spells.
+         SI_SKILLARG: string Beinhaltet den Text, den der Spieler nach
+         dem Spellkommando eingegeben hat. Z.B. stuende bei
+         "krallenschlag ork 2" der Text "ork 2" im Parameter.
 
-    SI_ATTACK_BUSY_MSG: string
-     Meldung, die dem Spieler mitteilt, dass er schon zu beschaeftigt
-     mit einem Angriff ist, um einen Spell zu casten. Falls dieser
-     Eintrag nicht gesetzt ist, wird  ein Standardtext ausgegeben.
+      SI_SKILLRESTR_USE: mixed
+         Einschraenkungen fuer das Nutzen des Spells. Wird
+         normalerweise direkt im Spellbook fuer den Spell eingetragen.
+         Die einzelnen Moeglichkeiten werden in der manpage zu
+         "check_restrictions" erlaeutert.
 
-    SI_NO_ATTACK_BUSY: int
-     Enthaelt als Flag NO_ATTACK_BUSY_QUERY wenn der Spell NICHT wie
-     eine Spezialwaffe die Aktionen einschraenkt. Siehe P_ATTACK_BUSY.
+      SI_SKILLRESTR_LEARN: mixed
+         Einschraenkungen fuer das Lernen des Spells. Wird
+         normalerweise direkt im Gildenobjekt fuer den Spell
+         eingetragen. Die einzelnen Moeglichkeiten werden in der
+         manpage zu "check_restrictions" erlaeutert.
 
-    SI_ATTACK_BUSY_AMOUNT: int
-     Menge des P_ATTACK_BUSY fuer diesen Spell. Falls dieser Wert nicht
-     gesetzt ist, aber auch SI_NO_ATTACK_BUSY nicht mit
-     NO_ATTACK_BUSY_QUERY ausgezeichnet ist wird 1 angenommen.
+      SI_SKILLINFO: string SI_SKILLINFO_LONG: string
 
-SIEHE AUCH:
-    Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
-    * Nutzung:      UseSpell, UseSkill
-    * Abfragen:     QuerySkill, QuerySkillAbility
-    * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
-                    QuerySkillAttributeModifier, RemoveSkillAttributeModifier
-      * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
-    * sonstig:      spruchermuedung
-    * Properties:   P_NEWSKILLS
-    Spellbook:      UseSpell, Learn, SpellSuccess
-    Gilden:         gilden-doku
-    Kampf:          Defend
+         Beschreibung des Spells. Wird im Gildenobjekt eingetragen und
+         SI_SKILLINFO wird von SkillListe angezeigt.
+
+      SI_SKILLDAMAGE: int / mixed FACTOR(SI_SKILLDAMAGE): int / mixed
+      OFFSET(SI_SKILLDAMAGE): int / mixed
+
+         Werte, die fuer die Schadenshoehenberechnung des Spells
+         benutzt werden (random ueber den Gesamtwert normalerweise).
+         Die Berechnung und die moeglichen Angaben (Closure etc.) sind
+         identisch zu SI_SPELLCOST.
+
+      SI_SKILLDAMAGE_BY_ROW
+         Ein Mapping mit Boni fuer den Angriff aus bestimmten
+         Kampfreihen. Funktioniert nur bei Verwendung von
+         TryDefaultAttackSpell-Spells aus dem Spellbook. Der Key steht
+         fuer eine bestimmte Reihe, sein Wert fuer den randomisierten
+         Bonus fuer Lebewesen, die aus dieser Reihe casten.
+
+      OFFSET(SI_SKILLDAMAGE_BY_ROW)
+         Ein Mapping mit fixem Wert fuer Row-Boni im Kampf.
+
+         Beispiel: AddSpell("feuerball", 20,
+            ([SI_SKILLDAMAGE:50,
+               OFFSET(SI_SKILLDAMAGE):100,
+               SI_SKILLDAMAGE_BY_ROW:([2:40,3:20}),
+               OFFSET(SI_SKILLDAMAGE_BY_ROW):([2:20]), ...
+
+         gibt
+            Reihe 1: random(50)+100; Reihe 2:
+            random(50)+100+random(40)+20 Reihe 3:
+            random(50)+100+random(20)
+
+         ACHTUNG: Hier gilt nicht die selbe Struktur wie bei
+         SI_SPELLCOST!
+
+      SI_SPELL: mapping
+         Dieser Eintrag enthaelt verschiedene Unterwerte, die den
+         Spell gerade fuer Angriffs-Spells genauer beschreiben. Siehe
+         Defend() fuer eine Beschreibung der verschiedenen Eintraege
+         (die so auch in das Spellbook uebernommen werden koennen).
+
+      SI_COLLATERAL_DAMAGE: int
+         Hiermit kann man einen Prozentwert von SI_SKILLDAMAGE
+         (inklusive Offsets und Factor) fuer Kollateralschaden an
+         Freunden im definierten Bereich eines Flaechenspells
+         (TryGlobalAttackSpell()) angeben. 10 bedeutet bei
+         OFFSET(SI_SKILLDAMAGE)=100 zB 10% von 100 = 10 = 1 LP an mit
+         reduce_hit_points() verursachtem Schaden.
+
+      SI_NUMBER_ENEMIES, SI_NUMBER_FRIENDS: int
+         Wird von TryGlobalAttackSpell() im Spell gesetzt und enthaelt
+         die Anzahl der im angegebenen Bereich befindlichen Feinde und
+         Freunde. Ist dementsprechend von informativem Nutzen fuer den
+         Angegriffenen und das Spellbook NACH Aufruf von
+         TryGlobalAttackSpell().
+
+      SI_DISTANCE, SI_WIDTH, SI_DEPTH: int
+         Limitiert die Entfernung, Tiefen und Breite der Wirkung eines
+         TryGlobalAttackSpell()
+
+      SI_SKILLHEAL: int
+         Konvention fuer Spells im Spellbook, dort den Heilwert zu
+         hinterlegen, hat keine Auswirkungen unter /std/.
+
+      SI_USR: mixed
+         Fuer selbst definierte Infos, spellbookabhaengig.
+
+      SI_PREPARE_TIME: int
+         Dauer der Zeit fuer zu praeparierende Spells.
+
+      SI_ATTACK_BUSY_MSG: string
+         Meldung, die dem Spieler mitteilt, dass er schon zu
+         beschaeftigt mit einem Angriff ist, um einen Spell zu casten.
+         Falls dieser Eintrag nicht gesetzt ist, wird  ein
+         Standardtext ausgegeben.
+
+      SI_NO_ATTACK_BUSY: int
+         Enthaelt als Flag NO_ATTACK_BUSY_QUERY wenn der Spell NICHT
+         wie eine Spezialwaffe die Aktionen einschraenkt. Siehe
+         P_ATTACK_BUSY.
+
+      SI_ATTACK_BUSY_AMOUNT: int
+         Menge des P_ATTACK_BUSY fuer diesen Spell. Falls dieser Wert
+         nicht gesetzt ist, aber auch SI_NO_ATTACK_BUSY nicht mit
+         NO_ATTACK_BUSY_QUERY ausgezeichnet ist wird 1 angenommen.
+
+
+SIEHE AUCH
+==========
+
+   Skills Lernen:  LearnSkill, ModifySkill, LimitAbility
+   * Nutzung:      UseSpell, UseSkill
+   * Abfragen:     QuerySkill, QuerySkillAbility
+   * Modifikation: ModifySkillAttribute, QuerySkillAttribute,
+                   QuerySkillAttributeModifier, RemoveSkillAttributeModifier
+     * Properties: P_SKILL_ATTRIBUTES, P_SKILL_ATTRIBUTE_OFFSETS
+   * sonstig:      spruchermuedung
+   * Properties:   P_NEWSKILLS
+   Spellbook:      UseSpell, Learn, SpellSuccess
+   Gilden:         gilden-doku
+   Kampf:          Defend
 
 7. Nov 2012 Gloinson
