NotifyMove()

FUNKTION

protected void NotifyMove(object dest, object oldenv, int method);

DEFINIERT IN

/std/thing/moving.c
/std/living/moving.c
/std/player/moving.c

ARGUMENTE

dest
     Das Ziel des Moves bzw. das jetzt aktuelle Environment
oldenv
     Das alte Environment des Objekts
method
     Die Move-Methode(n), mit der/denen bewegt wurde.

BESCHREIBUNG

Diese Funktion wird vom move() im Objekt gerufen, sobald die Bewegung im
wesentlichen abgeschlossen ist. Sie soll einerseits das Objekt ueber eine
stattgefundene Bewegung informieren, aber auch einige Dinge erledigen,
die bei der Bewegung stattfinden muessen (bei Livings z.B. das Team
nachholen).

RUeCKGABEWERT

keiner

BEMERKUNGEN

Diese Funktion kann ueberschrieben werden, damit das Objekt Bewegungen
mitgekommt, ohne das move() selber zu ueberschreiben oder einen Move-Hook
zu setzen. Dabei aber bitte unbedingt beachten:
Das geerbte NotifyMove() _MUSS IN JEDEM FALL_ mit aufgerufen werden!
Solltet ihr das vergessen, werden eure Objekte buggen. ;-)
Die Funktion darf nur objektintern verwendet werden. Beim Ueberschreiben
das 'protected' nicht vergessen!

BEISPIELE

Eine Bombe, die in Seherhaustruhen explodiert:

protected void NotifyMove(object dest, object oldenv, int method) {
    ::NotifyMove(dest, oldenv, method); // WICHTIG!
    if (objectp(dest) &&
        load_name(dest) == "/d/seher/haeuser/truhe") {
        if (find_call_out("explodiere")==-1)
            call_out("explodiere",900);
    }
    else
        remove_call_out("explodiere");
}

SIEHE AUCH

PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c

Last modified: 04.08.2007, Zesstra