RemoveSensitiveObject()¶
FUNKTION¶
void RemoveSensitiveObject(object ob)
DEFINIERT IN¶
/std/container/inventory.c
generalizes /std/living/inventory.c
ARGUMENTE¶
ob - zu entfernendes Objekt
BESCHREIBUNG¶
Entfernt ob aus den Benachrichtigungslisten des Containers.
Wird von thing/moving.c im alten Environment gerufen, wenn
P_SENSITIVE gesetzt ist.
Ruft dazu RemoveSensitiveObjectFromList().
BEMERKUNGEN¶
Setzt man P_SENSITIVE nicht als Default sondern situationsabhaengig,
dann muss man auch RemoveSensitiveObject im Environment
auch selbst rufen!
BEISPIEL¶
// Fackel (inheriting lightsource)
void create() {
...
SetProp(P_SENSITIVE,
({({SENSITIVE_INVENTORY_TRIGGER,DT_FIRE,120})}));
...
}
// wenn die Fackel geloescht wird, verliert sie ihre aktive
// Eigenschaft und muss das dem environment() mitteilen
static int extinguish(string str) {
int i;
i=::extinguish(str);
if(i && QueryProp(P_LIGHT)<=0) {
SetProp(P_SENSITIVE,0);
if(environment())
environment()->RemoveSensitiveObject(this_object());
}
return i;
}
- empfindliche Objekte wie Eiszapfen koennen jetzt wieder gefahrlos
in das selbe environment() bewegt werden
SIEHE AUCH¶
P_SENSITIVE
InsertSensitiveObject
insert_sensitive_inv_trigger, insert_sensitive_inv
P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY, P_SENSITIVE_INVENTORY_TRIGGER
CheckSensitiveAttack
25.Apr.2001, Gloinson@MG