blob: 5d639fe4e9c73fbba828c39d79c5ac0ee6aead7b [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001PreventInsert()
Zesstra953f9972017-02-18 15:37:36 +01002***************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 int PreventInsert(object ob);
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /std/container/restrictions.c
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
18=========
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 ob
Zesstra8bf86f52020-04-04 15:24:13 +020021 Das Objekt, das in den Behaelter eingefuegt werden soll.
MG Mud User88f12472016-06-24 23:31:02 +020022
Zesstra953f9972017-02-18 15:37:36 +010023
24BESCHREIBUNG
25============
26
27 Mit dieser Funktion kann ein Behaelter pruefen, ob er das Objekt ob
28 aufnehmen moechte oder nicht.
29
Zesstra8bf86f52020-04-04 15:24:13 +020030 Man beachte bitte, dass nach dieser Funktion *nicht* garantiert
31 ist, dass das Objekt wirklich bewegt wird, es handelt sich
32 lediglich um die Abfrage der Erlaubnis! Die Bewegung kann aus einer
33 Vielzahl an Gruenden noch abgebrochen werden.
34
35 Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsert()
36 zwar aufgerufen, aber das Ergebnis ignoriert, d.h. die Aufnahme
37 kann in dem Fall nicht verhindert werden.
38
Zesstra953f9972017-02-18 15:37:36 +010039
40RUeCKGABEWERT
41=============
42
Zesstra8bf86f52020-04-04 15:24:13 +020043 0
44 wenn das Objekt aufgenommen werden kann;
Zesstra953f9972017-02-18 15:37:36 +010045
Zesstra8bf86f52020-04-04 15:24:13 +020046 > 0
47 ein Wert groesser als 0 zeigt an, dass das Objekt nicht
48 aufgenommen werden soll.
Zesstra953f9972017-02-18 15:37:36 +010049
50
51BEISPIELE
52=========
53
Zesstra8bf86f52020-04-04 15:24:13 +020054 Um zu verhindern, dass man Geld in einen Behaelter stecken kann,
55 sollte man wie folgt vorgehen:
Zesstra953f9972017-02-18 15:37:36 +010056
Zesstra8bf86f52020-04-04 15:24:13 +020057 public int PreventInsert(object ob)
58 {
59 // Wenn es Geld ist, erheben wir sofort Einspruch
60 if (ob->id("geld"))
61 return 1;
62 // Ansonsten koennte ein ererbtes Objekt noch Einspruch erheben!
63 else
64 return ::PreventInsert(ob);
65 }
Zesstra953f9972017-02-18 15:37:36 +010066
67
68SIEHE AUCH
69==========
70
71 PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
Zesstra8bf86f52020-04-04 15:24:13 +020072 MayAddWeight(), PreventInsertLiving(), PreventLeaveLiving(),
73 NotifyMove(), PreventMove(), move(), /std/container/restrictions.c
Zesstra953f9972017-02-18 15:37:36 +010074
Zesstra8bf86f52020-04-04 15:24:13 +020075Last modified: 30.01.2020, Zesstra