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