Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/std/living/inventory.c b/std/living/inventory.c
new file mode 100644
index 0000000..e3027e4
--- /dev/null
+++ b/std/living/inventory.c
@@ -0,0 +1,66 @@
+// MorgenGrauen MUDlib
+//
+// container/inventory.c -- Umgang mit besonderen Objekten im Inventory
+//
+// $Id: inventory.c 6554 2007-10-17 22:45:53Z Zesstra $
+#pragma strong_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+inherit "/std/container/inventory";
+
+#define NEED_PROTOTYPES
+
+#include <properties.h>
+#include <sensitive.h>
+#include <attributes.h>
+
+#define ME this_object()
+
+public void RemoveSensitiveObject(object ob) {
+ ::RemoveSensitiveObject(ob);
+ RemoveSensitiveObjectFromList(ob,SENSITIVE_ATTACK);
+ if (objectp(ob) && (ob->QueryProp(P_X_ATTR_MOD) ||
+ ob->QueryProp(P_X_HEALTH_MOD) ))
+ {
+ deregister_modifier(ob);
+ // Erst wenn das Objekt den Spieler verlassen konnte, die Attribute
+ // neu berechnen.
+ if (find_call_out("UpdateAttributes")==-1)
+ call_out("UpdateAttributes",0);
+ }
+}
+
+public void InsertSensitiveObject(object ob, mixed arg) {
+ ::InsertSensitiveObject(ob,arg);
+ if (objectp(ob) && (ob->QueryProp(P_X_ATTR_MOD) ||
+ ob->QueryProp(P_X_HEALTH_MOD) ))
+ {
+ register_modifier(ob);
+ UpdateAttributes();
+ }
+}
+
+public void CheckSensitiveAttack(int dam, mixed dam_type, mixed spell,
+ object enemy) {
+ mixed a,x;
+ int i;
+
+ if (!pointerp(a=QueryProp(P_SENSITIVE_ATTACK)))
+ return;
+ if (!pointerp(dam_type))
+ dam_type=({dam_type});
+ for (i=sizeof(a)-1;i>=0;i--)
+ if (pointerp(x=a[i]) &&
+ dam>x[SENS_THRESHOLD] &&
+ member(dam_type,x[SENS_KEY])>=0 &&
+ objectp(x[SENS_OBJECT]) &&
+ environment(x[SENS_OBJECT])==ME &&
+ closurep(x[SENS_CLOSURE]))
+ funcall(x[SENS_CLOSURE],
+ enemy,x[SENS_KEY],dam,
+ spell,x[SENS_OPT]);
+}
+