#include <properties.h>#include <sensitive.h>#include <attributes.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | NEED_PROTOTYPES |
| #define | ME this_object() |
Funktionen | |
| public void | RemoveSensitiveObject (object ob) |
| public void | InsertSensitiveObject (object ob, mixed arg) |
| public void | CheckSensitiveAttack (int dam, mixed dam_type, mixed spell, object enemy) |
Variablen | |
| inherit std container | inventory |
| #define ME this_object() |
Definiert in Zeile 20 der Datei inventory.c.
| #define NEED_PROTOTYPES |
Definiert in Zeile 14 der Datei inventory.c.
| public void CheckSensitiveAttack | ( | int | dam, | |
| mixed | dam_type, | |||
| mixed | spell, | |||
| object | enemy | |||
| ) |
Definiert in Zeile 46 der Datei inventory.c.
Benutzt i, ME, P_SENSITIVE_ATTACK, QueryProp(), SENS_CLOSURE, SENS_KEY, SENS_OBJECT, SENS_OPT, SENS_THRESHOLD und x.
00047 { 00048 mixed a,x; 00049 int i; 00050 00051 if (!pointerp(a=QueryProp(P_SENSITIVE_ATTACK))) 00052 return; 00053 if (!pointerp(dam_type)) 00054 dam_type=({dam_type}); 00055 for (i=sizeof(a)-1;i>=0;i--) 00056 if (pointerp(x=a[i]) && 00057 dam>x[SENS_THRESHOLD] && 00058 member(dam_type,x[SENS_KEY])>=0 && 00059 objectp(x[SENS_OBJECT]) && 00060 environment(x[SENS_OBJECT])==ME && 00061 closurep(x[SENS_CLOSURE])) 00062 funcall(x[SENS_CLOSURE], 00063 enemy,x[SENS_KEY],dam, 00064 spell,x[SENS_OPT]); 00065 }

| public void InsertSensitiveObject | ( | object | ob, | |
| mixed | arg | |||
| ) |
Definiert in Zeile 36 der Datei inventory.c.
Benutzt InsertSensitiveObject(), P_X_ATTR_MOD, P_X_HEALTH_MOD, register_modifier() und UpdateAttributes().
00036 { 00037 ::InsertSensitiveObject(ob,arg); 00038 if (objectp(ob) && (ob->QueryProp(P_X_ATTR_MOD) || 00039 ob->QueryProp(P_X_HEALTH_MOD) )) 00040 { 00041 register_modifier(ob); 00042 UpdateAttributes(); 00043 } 00044 }

| public void RemoveSensitiveObject | ( | object | ob | ) |
Definiert in Zeile 22 der Datei inventory.c.
Benutzt call_out(), deregister_modifier(), P_X_ATTR_MOD, P_X_HEALTH_MOD, RemoveSensitiveObject(), RemoveSensitiveObjectFromList() und SENSITIVE_ATTACK.
00022 { 00023 ::RemoveSensitiveObject(ob); 00024 RemoveSensitiveObjectFromList(ob,SENSITIVE_ATTACK); 00025 if (objectp(ob) && (ob->QueryProp(P_X_ATTR_MOD) || 00026 ob->QueryProp(P_X_HEALTH_MOD) )) 00027 { 00028 deregister_modifier(ob); 00029 // Erst wenn das Objekt den Spieler verlassen konnte, die Attribute 00030 // neu berechnen. 00031 if (find_call_out("UpdateAttributes")==-1) 00032 call_out("UpdateAttributes",0); 00033 } 00034 }

Definiert in Zeile 12 der Datei inventory.c.
1.6.3