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/PreventMove b/doc/sphinx/man/lfun/PreventMove
new file mode 100644
index 0000000..920372d
--- /dev/null
+++ b/doc/sphinx/man/lfun/PreventMove
@@ -0,0 +1,109 @@
+
+PreventMove()
+*************
+
+
+PreventInsert()
+===============
+
+
+FUNKTION
+========
+
+ protected int PreventMove(object dest, object oldenv, int method);
+
+
+DEFINIERT IN
+============
+
+ /std/thing/moving.c
+ /std/living/moving.c
+ /std/player/moving.c
+
+
+ARGUMENTE
+=========
+
+ dest
+ Das Ziel des Moves
+ oldenv
+ Das (Noch-)Environment des Objekts
+ method
+ Die Move-Methode(n), mit der/denen bewegt werden soll
+
+
+BESCHREIBUNG
+============
+
+ Mit dieser Funktion prueft ein Objekt, ob es von 'oldenv' nach 'dest'
+ bewegt werden mag. Dabei wird 'method' beruecksichtigt (z.B. schaltet
+ M_NOCHECK die meisten Pruefungen ab).
+ Bei Gegenstaenden wird z.B. P_NODROP, P_NOGET, das Gewicht, ob das Ziel
+ das Objekt aufnehmen will (MayAddWeight(), PreventInsert) oder auch
+ PreventLeave() geprueft.
+ Bei Lebewesen wird z.B. P_NO_TPORT in 'dest' und 'oldenv' und
+ PreventLeaveLiving/PreventInsertLiving() ausgewertet.
+ Bei Spielern wird auch noch getestet, ob method M_GO oder M_TPORT
+ enthaelt und ob das Ziel nur von Testspielern betreten werden kann.
+
+
+RUeCKGABEWERT
+=============
+
+ 0, wenn das Objekt bewegt werden darf.
+ Wenn es nicht bewegt werden darf, sind als Rueckgabewerte die in
+ /sys/moving.h definierten Move-Fehlerwerte zulaessig (s. move()). Sollte
+ hier ein ungueltiger Fehlerwert zurueckgegeben werden, wird das move()
+ ebenfalls abgebrochen und ME_DONT_WANT_TO_BE_MOVED zurueckgeben.
+
+
+BEMERKUNGEN
+===========
+
+ Diese Funktion kann ueberschrieben, um feinere Kontrolle ueber die
+ Bewegungen des Objekt zu haben. Dabei aber bitte einige Dinge beachten:
+ 1. Denkt daran, ggf. M_NOCHECK zu beruecksichtigen und und eure
+ Pruefungen nur zu machen, wenn es nicht in method vorkommt.
+ 2. GANZ WICHTIG: Wenn ihr mit euren Pruefungen fertig sein und das Objekt
+ bewegt werden duerfte, die geerbten Pruefungen noch testen, also _IMMER_
+ das geerbte PreventMove() noch aufrufen und dessen Wert
+ zurueckgeben/beruecksichtigen, da sonst Pruefungen des Gewichts etc.
+ nicht funktionieren oder bei Lebewesen die Prevent*() im Environment
+ nicht gerufen werden!
+ 3. Die Funktion ist nur objektintern zu verwenden, Call-Other von aussen
+ sind nicht moeglich, beim Ueberschreiben 'protected' nicht vergessen.
+ 4. Nochmal: Geerbtes PreventMove() _NICHT VERGESSEN_!
+
+
+BEISPIELE
+=========
+
+ Ein Objekt, was nur im Sternenlicht aufgenommen werden kann (warum
+ auch immer):
+
+ protected int PreventMove(object dest, object oldenv, int method) {
+ if ( (method & M_NOCHECK) ) {
+ // wenn mit M_NOCHECK bewegt, ist das Sternenlicht egal, nur
+ // geerbtes PreventMove() beruecksichten:
+ return ::PreventMove(dest, oldenv, method);
+ }
+ else if ( method & M_GET) {
+ // wenn es aufgenommen werden soll: nach Sternenlicht im Raum
+ // gucken:
+ if (objectp(dest) &&
+ (dest->QueryProp(P_LIGHT_TYPE) != LT_STARS))
+ return ME_CANT_BE_TAKEN;
+ }
+ // Fall-through:
+ return ::PreventMove(dest, oldenv, method);
+ }
+
+
+SIEHE AUCH
+==========
+
+ PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
+ PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
+ PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c
+
+Last modified: 04.08.2007, Zesstra