blob: 80d7a0ed510b66801c4e55f21b82a7c58dcb57bc [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001PreventInsert()
2===============
3
4FUNKTION
5--------
Zesstra18626972017-01-31 10:38:27 +01006
7 int PreventInsert(object ob);
8
9DEFINIERT IN
10------------
Zesstra18626972017-01-31 10:38:27 +010011
12 /std/container/restrictions.c
13
14ARGUMENTE
15---------
Zesstra18626972017-01-31 10:38:27 +010016
17 ob
18 Das Objekt, das in den Behaelter eingefuegt werden soll.
19
20BESCHREIBUNG
21------------
Zesstra18626972017-01-31 10:38:27 +010022
23 Mit dieser Funktion kann ein Behaelter pruefen, ob er das Objekt ob
24 aufnehmen moechte oder nicht.
25
Zesstraaf7a5742020-01-30 19:33:36 +010026 Man beachte bitte, dass nach dieser Funktion *nicht* garantiert ist,
27 dass das Objekt wirklich bewegt wird, es handelt sich lediglich um die
28 Abfrage der Erlaubnis! Die Bewegung kann aus einer Vielzahl an Gruenden
29 noch abgebrochen werden.
Zesstra18626972017-01-31 10:38:27 +010030
31 Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsert() zwar
Zesstraaf7a5742020-01-30 19:33:36 +010032 aufgerufen, aber das Ergebnis ignoriert, d.h. die Aufnahme kann in dem
33 Fall nicht verhindert werden.
34
35RUeCKGABEWERT
36-------------
37
38 0
39 wenn das Objekt aufgenommen werden kann;
40 > 0
41 ein Wert groesser als 0 zeigt an, dass das Objekt nicht aufgenommen
42 werden soll.
Zesstra18626972017-01-31 10:38:27 +010043
44BEISPIELE
45---------
Zesstra18626972017-01-31 10:38:27 +010046
47 Um zu verhindern, dass man Geld in einen Behaelter stecken kann, sollte
48 man wie folgt vorgehen:
49
Zesstraaf7a5742020-01-30 19:33:36 +010050 .. code-block:: pike
51
52 public int PreventInsert(object ob)
53 {
54 // Wenn es Geld ist, erheben wir sofort Einspruch
55 if (ob->id("geld"))
56 return 1;
57 // Ansonsten koennte ein ererbtes Objekt noch Einspruch erheben!
58 else
59 return ::PreventInsert(ob);
60 }
Zesstra18626972017-01-31 10:38:27 +010061
62SIEHE AUCH
63----------
Zesstra18626972017-01-31 10:38:27 +010064
Zesstraaf7a5742020-01-30 19:33:36 +010065 :doc:`PreventLeave`, :doc:`NotifyInsert`, :doc:`NotifyLeave`,
66 :doc:`MayAddObject`, :doc:`MayAddWeight`, :doc:`PreventInsertLiving`,
67 :doc:`PreventLeaveLiving`, :doc:`NotifyMove`, :doc:`PreventMove`,
68 :doc:`move`, /std/container/restrictions.c
Zesstra18626972017-01-31 10:38:27 +010069
Zesstraaf7a5742020-01-30 19:33:36 +010070Last modified: 30.01.2020, Zesstra
Zesstra18626972017-01-31 10:38:27 +010071