blob: e58e82758bd53b9e9f9da5cfe3b3bdbe38be8cb3 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002PreventInsert()
Zesstra953f9972017-02-18 15:37:36 +01003***************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 int PreventInsert(object ob);
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /std/container/restrictions.c
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018ARGUMENTE
19=========
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 ob
Zesstra8bf86f52020-04-04 15:24:13 +020022 Das Objekt, das in den Behaelter eingefuegt werden soll.
MG Mud User88f12472016-06-24 23:31:02 +020023
Zesstra953f9972017-02-18 15:37:36 +010024
25BESCHREIBUNG
26============
27
28 Mit dieser Funktion kann ein Behaelter pruefen, ob er das Objekt ob
29 aufnehmen moechte oder nicht.
30
Zesstra8bf86f52020-04-04 15:24:13 +020031 Man beachte bitte, dass nach dieser Funktion *nicht* garantiert
32 ist, dass das Objekt wirklich bewegt wird, es handelt sich
33 lediglich um die Abfrage der Erlaubnis! Die Bewegung kann aus einer
34 Vielzahl an Gruenden noch abgebrochen werden.
35
36 Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsert()
37 zwar aufgerufen, aber das Ergebnis ignoriert, d.h. die Aufnahme
38 kann in dem Fall nicht verhindert werden.
39
Zesstra953f9972017-02-18 15:37:36 +010040
41RUeCKGABEWERT
42=============
43
Zesstra8bf86f52020-04-04 15:24:13 +020044 0
45 wenn das Objekt aufgenommen werden kann;
Zesstra953f9972017-02-18 15:37:36 +010046
Zesstra8bf86f52020-04-04 15:24:13 +020047 > 0
48 ein Wert groesser als 0 zeigt an, dass das Objekt nicht
49 aufgenommen werden soll.
Zesstra953f9972017-02-18 15:37:36 +010050
51
52BEISPIELE
53=========
54
Zesstra8bf86f52020-04-04 15:24:13 +020055 Um zu verhindern, dass man Geld in einen Behaelter stecken kann,
56 sollte man wie folgt vorgehen:
Zesstra953f9972017-02-18 15:37:36 +010057
Zesstra8bf86f52020-04-04 15:24:13 +020058 public int PreventInsert(object ob)
59 {
60 // Wenn es Geld ist, erheben wir sofort Einspruch
61 if (ob->id("geld"))
62 return 1;
63 // Ansonsten koennte ein ererbtes Objekt noch Einspruch erheben!
64 else
65 return ::PreventInsert(ob);
66 }
Zesstra953f9972017-02-18 15:37:36 +010067
68
69SIEHE AUCH
70==========
71
72 PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
Zesstra8bf86f52020-04-04 15:24:13 +020073 MayAddWeight(), PreventInsertLiving(), PreventLeaveLiving(),
74 NotifyMove(), PreventMove(), move(), /std/container/restrictions.c
Zesstra953f9972017-02-18 15:37:36 +010075
Zesstra8bf86f52020-04-04 15:24:13 +020076Last modified: 30.01.2020, Zesstra