Auto-erzeugte Manpages aktualisiert.
Change-Id: I56922c76705a17682137843fd743c1f2068b2e42
diff --git a/doc/lfun/normalize_defend_args b/doc/lfun/normalize_defend_args
new file mode 100644
index 0000000..7b41e74
--- /dev/null
+++ b/doc/lfun/normalize_defend_args
@@ -0,0 +1,89 @@
+
+normalize_defend_args()
+***********************
+
+
+FUNKTION
+========
+
+ protected nomask void normalize_defend_args(int dam,
+ string|string* dam_types, int|mapping si_spell, object enemy)
+
+
+DEFINIERT IN
+============
+
+ /std/living/combat.c
+
+
+ARGUMENTE
+=========
+
+ Die Argumente sind die Argumente, welche Defend() uebergeben
+ bekommt (siehe dort!)
+
+
+BESCHREIBUNG
+============
+
+ Defend bekommt aus historischem Code haeufig Argumente uebergeben,
+ die nicht der aktuellen Konvention entsprechen (z.B. si_spell als 0
+ oder 1 statt eines Mappings). Damit nun nicht jedes Objekt seine
+ eigene Anpassung vornehmen muss und dabei evtl. noch etwas
+ vergessen wird, kann man mit dieser Funktion die Argumente genauso
+ "normieren", wie es in der Standardlib in Defend() auch gemacht
+ wuerde.
+
+ Dieses wird ganz dringend empfohlen statt diese Normierung selber
+ vorzunehmen. Und sollte es hier Aenderungen geben, bekommt man
+ diese automatisch mit.
+
+ Nach dem Aufruf dieser Funktion (Argumente als Referenz
+ uebergeben!) liegen die Argumente dann wie folgt vor:
+
+ dam
+ ein Integer (unveraendert)
+
+ dam_types
+ ein Array von Schadenstypen
+
+ si_spell
+ ein Mapping - wenn es neu angelegt wurde, enthaelt es die
+ Eintraege SP_PHYSICAL_ATTACK, SP_SHOW_DAMAGE, SP_REDUCE_ARMOUR
+ und EINFO_DEFEND. SP_PHYSICAL_ATTACK und SP_SHOW_DAMAGE sind 1,
+ wenn si_spell 0 wahr, sonst 1.
+
+ enemy
+ ist das Objekt des Gegners oder this_player()
+
+ Alternativ zum Ueberschreiben von Defend() und Nutzung dieser
+ Funktion ist haeufig auch InternalModifyDefend() gut geeignet. Dort
+ muss *keine* eigene Normierung der uebergebenen Argumente mehr
+ vorgenommen werden!
+
+
+BEISPIELE
+=========
+
+ // Ein eigenes Defend soll Dinge tun, bevor das geerbte Defend() gerufen
+ // wird. Um den Code zu vereinfachen, sollen die Typen der Argumente aber
+ // schon sicher in einem "normierten Zustand" sein.
+ public int Defend(int dam, string|string* dam_types, int|mapping spell,
+ object enemy)
+ {
+ // Uebergabe per Referenz noetig!
+ normalize_defend_args(&dam, &dam_type, &spell, &enemy);
+ if (member(dam_types, DT_FIRE) > -1
+ && si_spell[SP_NAME] == "Drachenfeuer")
+ dam *= 2; // Schaden verdoppeln
+ return ::Defend(dam, dam_types, si_spell, enemy);
+ }
+
+
+SIEHE AUCH
+==========
+
+ Verwandt:
+ InternalModifyDefend(), Defend(), DefendInfo()
+
+16.01.2019 Zesstra