Manpages als reStructuredText erstellt

Unsere Manpages wurden mit einem LPC-Tool in
reStructuredText konvertiert und liegen jetzt
in diesem Verzeichnis als Quelldaten.
Aus diesen reStructuredText sollen dann per
Script die ASCII-Manpages und per Sphinx HTML u.a.
erzeugt werden.

Change-Id: I75d659a7b3f9863aecb11dbeb0037e6cae227c36
diff --git a/doc/sphinx/lfun/GuardExit.rst b/doc/sphinx/lfun/GuardExit.rst
new file mode 100644
index 0000000..aa5a1df
--- /dev/null
+++ b/doc/sphinx/lfun/GuardExit.rst
@@ -0,0 +1,112 @@
+GuardExit()
+===========
+
+FUNKTION
+--------
+::
+
+     protected <int|<string|closure>* >* GuardExit(object room, int hookid,
+                                                   <string|closure>* hdata);
+
+DEFINIERT IN
+------------
+::
+
+     /std/npc/moving.c
+
+ARGUMENTE
+---------
+::
+
+     room
+          Der den Hook ausloesende Raum (environment())
+     hookid
+          Die ID des Hooks (H_HOOK_EXIT_USE)
+     hdata
+          Ein Array mit 3 Elementen:
+          ({
+              verb - Das Kommandoverb/Ausgangsname (string)
+              dest - Zielraum (string) oder closure (special exits)
+              msg  - Bewegungsrichtung (string) oder 0
+          })
+
+BESCHREIBUNG
+------------
+::
+
+     Ist diese Funktion in einem NPC definiert, traegt sich der NPC bei jeder
+     Bewegung automatisch als Konsument von H_HOOK_EXIT_USE ein und diese
+     Funktion wird immer gerufen, wenn ein Lebewesen im gleichen Environment
+     wie der NPC versucht, einen Ausgang zu benutzen.
+     Der NPC kann dann die Bewegung abbrechen (und so den Ausgang
+     blockieren), Ziel oder Bewegungsmeldung aendern oder keine Veraenderung
+     vornehmen.
+     Die Konstanten fuer Hookid und Hookstatus (s. Rueckgabewert) sind in
+     <hook.h> definiert.
+
+RUeCKGABEWERT
+-------------
+::
+
+     Array mit zwei Elementen:
+     ({
+         H_NO_MOD / H_ALTERED / H_CANCELLED,
+         hdata
+     })
+     hdata ist ggf. das geaenderte Array, welches die Funktion uebergeben
+     wird. Weitere Details s. auch /doc/std/hooks
+
+BEMERKUNGEN
+-----------
+::
+
+     Die Anzahl an Konsumenten eines Hooks ist begrenzt. Es ist daher
+     moeglich, dass die Registrierung nicht klappt, wenn zuviele (>5) Waechter
+     im Raum sind. Will man darauf reagieren, muesste man die Registrierung
+     pruefen.
+     Ein NPC, welcher GuardExit() definiert, aber im aktuellen Environment
+     keine Wache halten will, koennte sich selber de-registrieren.
+
+BEISPIELE
+---------
+::
+
+     <int|<string|closure>* >* GuardExit(object room, int hookid,
+                                         <string|closure>* hdata)
+     {
+       // Nur in Gefaengnisraeumen Wache halten
+       if (strstr(object_name(environment()), "/room/jail")==0)
+       {
+         // Hier gehts nicht raus. ;-)
+         if (hdata[0] == "raus") {
+             tell_object(this_player(), ...);
+             return ({H_CANCELLED, hdata});
+         }
+         // Special exits ersetzen wir durch einen eigenen
+         else if (closurep(hdata[1])) {
+           hdata[1] = #'my_special_exit;
+           return ({H_ALTERED, hdata});
+         }
+         // alle anderen Ausgaenge in die persoenliche Zelle
+         else {
+           tell_object(this_player(), ...);
+           hdata[1] = "/room/jail_"+getuid(this_player());
+           hdata[2] = "Sueden";
+           return ({H_ALTERED, hdata});
+         }
+      }
+      // in allen anderen Raeumen nicht eingreifen
+      return ({H_NO_MOD, hdata});
+    }
+
+SIEHE AUCH
+----------
+::
+
+     AddExit, AddSpecialExit, RemoveExit
+     HRegisterToHook, HRegisterModifier, HUnregisterFromHook
+     /doc/std/hooks
+
+20.02.2016, Zesstra
+22.05.2016, Mupfel (Beispiel korrigiert)
+