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
