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/lfun/PreventMove b/doc/lfun/PreventMove
index 798ee0b..920372d 100644
--- a/doc/lfun/PreventMove
+++ b/doc/lfun/PreventMove
@@ -1,81 +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
+FUNKTION
+========
-ARGUMENTE:
- dest
- Das Ziel des Moves
- oldenv
- Das (Noch-)Environment des Objekts
- method
- Die Move-Methode(n), mit der/denen bewegt werden soll
+ protected int PreventMove(object dest, object oldenv, int method);
-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.
+DEFINIERT IN
+============
-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_!
+ /std/thing/moving.c
+ /std/living/moving.c
+ /std/player/moving.c
-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);
+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
+SIEHE AUCH
+==========
-----------------------------------------------------------------------------
+ PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
+ PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
+ PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c
+
Last modified: 04.08.2007, Zesstra