#include <defines.h>#include <properties.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | NEED_PROTOTYPES |
Funktionen | |
| protected void | create () |
| protected void | create_super () |
| static int | _set_weight (int weight) |
| static mapping | _set_extern_attributes_modifier (mapping xmod) |
| static mapping | _set_extern_health_modifier (mapping xmod) |
| void | NotifyXMAttrModLimitViolation () |
| #define NEED_PROTOTYPES |
Definiert in Zeile 16 der Datei restrictions.c.
| static mapping _set_extern_attributes_modifier | ( | mapping | xmod | ) | [static] |
Definiert in Zeile 36 der Datei restrictions.c.
Benutzt ME, P_SENSITIVE, P_X_ATTR_MOD, QueryProp(), Set() und SetProp().
00037 { 00038 mapping res; 00039 00040 // wenn Muell oder ein leeres Mapping uebergeben wurde, wird die prop 00041 // geloescht und ggf. das Objekt im Living abgemeldet. 00042 if (!mappingp(xmod)) xmod=([]); 00043 00044 if (!sizeof(xmod)) { 00045 00046 res=Set(P_X_ATTR_MOD, xmod); 00047 00048 // wenn Prop geloescht wird, kann man das Item auch aus der Liste der 00049 // Statmodifizierer des Lebewesens austragen. 00050 if (living(environment())) { 00051 environment()->deregister_modifier(ME); 00052 environment()->UpdateAttributes(); 00053 } 00054 } 00055 else { 00056 // ok, Prop wird auf nen interessanten Wert gesetzt. ;-) 00057 00058 // Damit Insert/RemoveSensitiveObject beim Move aufgerufen wird, 00059 // muss P_SENSITIVE gesetzt sein 00060 if (!QueryProp(P_SENSITIVE)) SetProp(P_SENSITIVE,({})); 00061 00062 if (living(environment()) && 00063 (!mappingp(res=QueryProp(P_X_ATTR_MOD)) || !sizeof(res))) { 00064 // Wenn dieses Objekt in einem Living ist und bisher die prop nicht 00065 // gesetzt war, muss sich das Objekt noch im Living als Statmodifizierer 00066 // registrieren. 00067 res=Set(P_X_ATTR_MOD, xmod); 00068 environment()->register_modifier(ME); 00069 environment()->UpdateAttributes(ME); 00070 } 00071 else if (living(environment())){ 00072 // sonst reicht ein einfaches UpdateAttributes() um das Lebewesen zu 00073 // informieren. 00074 res=Set(P_X_ATTR_MOD, xmod); 00075 environment()->UpdateAttributes(); 00076 } 00077 else { 00078 // wenn kein lebendes Env, reicht einfaches Setzen. 00079 res=Set(P_X_ATTR_MOD,xmod); 00080 } 00081 } 00082 00083 return res; 00084 }

| static mapping _set_extern_health_modifier | ( | mapping | xmod | ) | [static] |
Definiert in Zeile 87 der Datei restrictions.c.
Benutzt ME, P_SENSITIVE, P_X_HEALTH_MOD, QueryProp(), Set() und SetProp().
00087 { 00088 mapping res; 00089 00090 // wenn Muell oder ein leeres Mapping uebergeben wurde, wird die prop 00091 // geloescht und ggf. das Objekt im Living abgemeldet. 00092 if (!mappingp(xmod)) xmod=([]); 00093 00094 if (!sizeof(xmod)) { 00095 00096 res=Set(P_X_HEALTH_MOD, xmod); 00097 00098 // wenn Prop geloescht wird, kann man das Item auch aus der Liste der 00099 // Statmodifizierer des Lebewesens austragen. 00100 if (living(environment())) { 00101 environment()->deregister_modifier(ME); 00102 environment()->UpdateAttributes(); 00103 } 00104 } 00105 else { 00106 // ok, Prop wird auf nen interessanten Wert gesetzt. ;-) 00107 00108 // Damit Insert/RemoveSensitiveObject beim Move aufgerufen wird, 00109 // muss P_SENSITIVE gesetzt sein 00110 if (!QueryProp(P_SENSITIVE)) SetProp(P_SENSITIVE,({})); 00111 00112 if (living(environment()) && 00113 (!mappingp(res=QueryProp(P_X_HEALTH_MOD)) || !sizeof(res))) { 00114 // Wenn dieses Objekt in einem Living ist und bisher die prop nicht 00115 // gesetzt war, muss sich das Objekt noch im Living als Statmodifizierer 00116 // registrieren. 00117 res=Set(P_X_HEALTH_MOD, xmod); 00118 environment()->register_modifier(ME); 00119 environment()->UpdateAttributes(ME); 00120 } 00121 else if (living(environment())){ 00122 // sonst reicht ein einfaches UpdateAttributes() um das Lebewesen zu 00123 // informieren. 00124 res=Set(P_X_HEALTH_MOD, xmod); 00125 environment()->UpdateAttributes(); 00126 } 00127 else { 00128 // wenn kein lebendes Env, reicht einfaches Setzen. 00129 res=Set(P_X_HEALTH_MOD,xmod); 00130 } 00131 } 00132 00133 return res; 00134 00135 }

| static int _set_weight | ( | int | weight | ) | [static] |
Definiert in Zeile 30 der Datei restrictions.c.
Benutzt F_VALUE, P_TOTAL_WEIGHT, P_WEIGHT, Set() und SetProp().
00030 { 00031 return SetProp(P_TOTAL_WEIGHT, 00032 Set(P_WEIGHT, weight, F_VALUE) ); 00033 }

| protected void create | ( | ) |
| protected void create_super | ( | ) |
Definiert in Zeile 25 der Datei restrictions.c.
Benutzt set_next_reset().
00025 { 00026 set_next_reset(-1); 00027 }

| void NotifyXMAttrModLimitViolation | ( | ) |
Definiert in Zeile 139 der Datei restrictions.c.
1.6.3