blob: 5f6e0dc337ccae673b8d4b5479b32ab1c018cc5b [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001RemoveSensitiveObject()
2FUNKTION:
3 void RemoveSensitiveObject(object ob)
4
5DEFINIERT IN:
6 /std/container/inventory.c
7 generalizes /std/living/inventory.c
8
9ARGUMENTE:
10 ob - zu entfernendes Objekt
11
12BESCHREIBUNG:
13 Entfernt ob aus den Benachrichtigungslisten des Containers.
14 Wird von thing/moving.c im alten Environment gerufen, wenn
15 P_SENSITIVE gesetzt ist.
16 Ruft dazu RemoveSensitiveObjectFromList().
17
18BEMERKUNGEN:
19 Setzt man P_SENSITIVE nicht als Default sondern situationsabhaengig,
20 dann muss man auch RemoveSensitiveObject im Environment
21 auch selbst rufen!
22
23BEISPIEL:
24 // Fackel (inheriting lightsource)
25 void create() {
26 ...
27 SetProp(P_SENSITIVE,
28 ({({SENSITIVE_INVENTORY_TRIGGER,DT_FIRE,120})}));
29 ...
30 }
31
32 // wenn die Fackel geloescht wird, verliert sie ihre aktive
33 // Eigenschaft und muss das dem environment() mitteilen
34 static int extinguish(string str) {
35 int i;
36 i=::extinguish(str);
37 if(i && QueryProp(P_LIGHT)<=0) {
38 SetProp(P_SENSITIVE,0);
39 if(environment())
40 environment()->RemoveSensitiveObject(this_object());
41 }
42 return i;
43 }
44
45 - empfindliche Objekte wie Eiszapfen koennen jetzt wieder gefahrlos
46 in das selbe environment() bewegt werden
47
48SIEHE AUCH:
49 P_SENSITIVE
50 InsertSensitiveObject
51 insert_sensitive_inv_trigger, insert_sensitive_inv
52 P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY, P_SENSITIVE_INVENTORY_TRIGGER
53 CheckSensitiveAttack
54
5525.Apr.2001, Gloinson@MG
56