| PreventInsert() |
| *************** |
| |
| |
| FUNKTION |
| ======== |
| |
| int PreventInsert(object ob); |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| /std/container/restrictions.c |
| |
| |
| ARGUMENTE |
| ========= |
| |
| ob |
| Das Objekt, das in den Behaelter eingefuegt werden soll. |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| Mit dieser Funktion kann ein Behaelter pruefen, ob er das Objekt ob |
| aufnehmen moechte oder nicht. |
| |
| Man beachte bitte, dass nach dieser Funktion *nicht* garantiert |
| ist, dass das Objekt wirklich bewegt wird, es handelt sich |
| lediglich um die Abfrage der Erlaubnis! Die Bewegung kann aus einer |
| Vielzahl an Gruenden noch abgebrochen werden. |
| |
| Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsert() |
| zwar aufgerufen, aber das Ergebnis ignoriert, d.h. die Aufnahme |
| kann in dem Fall nicht verhindert werden. |
| |
| |
| RUeCKGABEWERT |
| ============= |
| |
| 0 |
| wenn das Objekt aufgenommen werden kann; |
| |
| > 0 |
| ein Wert groesser als 0 zeigt an, dass das Objekt nicht |
| aufgenommen werden soll. |
| |
| |
| BEISPIELE |
| ========= |
| |
| Um zu verhindern, dass man Geld in einen Behaelter stecken kann, |
| sollte man wie folgt vorgehen: |
| |
| public int PreventInsert(object ob) |
| { |
| // Wenn es Geld ist, erheben wir sofort Einspruch |
| if (ob->id("geld")) |
| return 1; |
| // Ansonsten koennte ein ererbtes Objekt noch Einspruch erheben! |
| else |
| return ::PreventInsert(ob); |
| } |
| |
| |
| SIEHE AUCH |
| ========== |
| |
| PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(), |
| MayAddWeight(), PreventInsertLiving(), PreventLeaveLiving(), |
| NotifyMove(), PreventMove(), move(), /std/container/restrictions.c |
| |
| Last modified: 30.01.2020, Zesstra |