Automatisch erzeugte Manpages.
Damit nicht jeder sphinx auf dem Rechner haben muss,
behalten wir bis auf weiteres die aus den .rst
erzeugten Manpoages auch im Repo.
Change-Id: Id556c0d11cf5f79659d8350952ce1c014d81ea44
diff --git a/doc/sphinx/man/lfun/check_restrictions b/doc/sphinx/man/lfun/check_restrictions
new file mode 100644
index 0000000..e173e8f
--- /dev/null
+++ b/doc/sphinx/man/lfun/check_restrictions
@@ -0,0 +1,202 @@
+
+check_restrictions()
+********************
+
+
+FUNKTION
+========
+
+ string check_restrictions(object pl, mapping restr)
+
+
+DEFINIERT IN
+============
+
+ /std/restriction_checker.c
+
+
+ARGUMENTE
+=========
+
+ object pl geprueftes Lebewesen
+ mapping restr Mapping mit Restriktionen, s.u.
+
+
+BESCHREIBUNG
+============
+
+ Die Methode wird verwendet, um Restriktionen (zum Beispiel fuer das
+ Casten eines Spells) zu pruefen. Sie wird von Spellbook und
+ Gildenobjekt direkt genutzt.
+
+ Ihr wird dabei ein Spielerobjekt sowie ein Mapping mit den jeweiligen
+ Restriktionen uebergeben. Die aktuell moeglichen Keys des Mappings sind
+ weiter unten gelistet.
+
+
+BEMERKUNGEN
+===========
+
+ Es wird bei der Rasse P_REAL_RACE geprueft. Der Tarnhelm funktioniert
+ also nicht.
+
+ Bei Erweiterungsvorschlaegen wendet euch bitte an einen EM oder
+ inheritet im Zweifelsfall nach Absprache.
+ NIEMALS solchen Code einfach KOPIEREN. Spaeter muss nur irgendwer
+ eurem alten Code hinterherraeumen.
+
+Aktuelle Liste der pruefbaren Parameter:
+ 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.
+
+ SQ_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.
+
+
+BEISPIELE
+=========
+
+ // #1 Levelbeschraenkung in der Abenteurergilde
+ AddSpell("feuerball",20,
+ ([SI_SKILLRESTR_LEARN:([P_LEVEL:15]), ...
+
+ // #2 Glaubenstest im Klerus
+ AddSpell("bete",
+ ([SI_SKILLRESTR_LEARN: ([P_GUILD_LEVEL : LVL_NOVIZE,
+ SR_FUN : #'glaubensTest ]), ...
+ // mit
+ static string glaubensTest(object pl) {
+ if (pl->QueryProp(K_STRENGTH) < 8000)
+ return ("Deine Glaubensstaerke laesst zu wuenschen uebrig!\n");
+ return 0;
+ }
+
+ // #3 SM_RACE-Modifikation der Restriktionen:
+ // haertere Restriktionen fuer Zwerge
+ // - hoeheres Level
+ // - zusaetzlich A_STR pruefen
+ ([P_LEVEL:15,
+ A_INT:10,
+ SM_RACE: (["Zwerg": ([P_LEVEL:17, A_STR:20])])])
+ // ist identisch zu
+ ([SM_RACE: (["*": ([P_LEVEL:15, A_INT:10]),
+ "Zwerg": ([P_LEVEL:17, A_INT:10, A_STR:20])])])
+
+
+SIEHE AUCH
+==========
+
+ execute_anything(L), AddSpell (Gilde), P_RESTRICTIONS
+
+3. Januar 2014, Arathorn