Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/std/thing/restrictions.c b/std/thing/restrictions.c
new file mode 100644
index 0000000..e8d0f83
--- /dev/null
+++ b/std/thing/restrictions.c
@@ -0,0 +1,142 @@
+// MorgenGrauen MUDlib
+//
+// thing/restrictions.c -- Gewicht u.ae. eines Objekts
+//
+// $Id: restrictions.c 6809 2008-03-29 21:54:04Z Zesstra $
+
+#pragma strict_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+#include <defines.h>
+#include <properties.h>
+
+#define NEED_PROTOTYPES 
+#include <thing/properties.h>
+
+// Gewicht ist 1kg, wenn nicht anders bestimmt
+protected void create() 
+{  
+  SetProp(P_WEIGHT, 1000);
+}
+
+protected void create_super() {
+  set_next_reset(-1);
+}     
+
+// P_TOTAL_WEIGHT bei Nicht-Containern auf P_WEIGHT umleiten
+static int _set_weight(int weight) {
+  return SetProp(P_TOTAL_WEIGHT,
+	  Set(P_WEIGHT, weight, F_VALUE) );
+}
+
+// P_X_ATTR_MOD aendern (Attributaenderungen durch Ausruestung)
+static mapping _set_extern_attributes_modifier(mapping xmod) 
+{
+  mapping res;
+
+  // wenn Muell oder ein leeres Mapping uebergeben wurde, wird die prop
+  // geloescht und ggf. das Objekt im Living abgemeldet.
+  if (!mappingp(xmod)) xmod=([]);
+  
+  if (!sizeof(xmod)) {
+ 
+    res=Set(P_X_ATTR_MOD, xmod);
+  
+    // wenn Prop geloescht wird, kann man das Item auch aus der Liste der
+    // Statmodifizierer des Lebewesens austragen.
+    if (living(environment())) {  
+      environment()->deregister_modifier(ME);
+      environment()->UpdateAttributes();
+    }
+  }
+  else {
+    // ok, Prop wird auf nen interessanten Wert gesetzt. ;-)
+
+    // Damit Insert/RemoveSensitiveObject beim Move aufgerufen wird,
+    // muss P_SENSITIVE gesetzt sein
+    if (!QueryProp(P_SENSITIVE)) SetProp(P_SENSITIVE,({}));
+  
+    if (living(environment()) && 
+        (!mappingp(res=QueryProp(P_X_ATTR_MOD)) || !sizeof(res))) {
+      // Wenn dieses Objekt in einem Living ist und bisher die prop nicht
+      // gesetzt war, muss sich das Objekt noch im Living als Statmodifizierer
+      // registrieren.
+      res=Set(P_X_ATTR_MOD, xmod);
+      environment()->register_modifier(ME);
+      environment()->UpdateAttributes(ME);
+    }
+    else if (living(environment())){
+      // sonst reicht ein einfaches UpdateAttributes() um das Lebewesen zu
+      // informieren.
+      res=Set(P_X_ATTR_MOD, xmod);
+      environment()->UpdateAttributes();
+    }
+    else {
+      // wenn kein lebendes Env, reicht einfaches Setzen.
+      res=Set(P_X_ATTR_MOD,xmod);
+    }
+  }
+
+  return res;
+}
+
+// P_X_HEALTH_MOD aendern (LP/KP-Aenderung durch Ausruestung)
+static mapping _set_extern_health_modifier(mapping xmod) {
+  mapping res;
+
+  // wenn Muell oder ein leeres Mapping uebergeben wurde, wird die prop
+  // geloescht und ggf. das Objekt im Living abgemeldet.
+  if (!mappingp(xmod)) xmod=([]);
+  
+  if (!sizeof(xmod)) {
+ 
+    res=Set(P_X_HEALTH_MOD, xmod);
+  
+    // wenn Prop geloescht wird, kann man das Item auch aus der Liste der
+    // Statmodifizierer des Lebewesens austragen.
+    if (living(environment())) {  
+      environment()->deregister_modifier(ME);
+      environment()->UpdateAttributes();
+    }
+  }
+  else {
+    // ok, Prop wird auf nen interessanten Wert gesetzt. ;-)
+
+    // Damit Insert/RemoveSensitiveObject beim Move aufgerufen wird,
+    // muss P_SENSITIVE gesetzt sein
+    if (!QueryProp(P_SENSITIVE)) SetProp(P_SENSITIVE,({}));
+  
+    if (living(environment()) && 
+        (!mappingp(res=QueryProp(P_X_HEALTH_MOD)) || !sizeof(res))) {
+      // Wenn dieses Objekt in einem Living ist und bisher die prop nicht
+      // gesetzt war, muss sich das Objekt noch im Living als Statmodifizierer
+      // registrieren.
+      res=Set(P_X_HEALTH_MOD, xmod);
+      environment()->register_modifier(ME);
+      environment()->UpdateAttributes(ME);
+    }
+    else if (living(environment())){
+      // sonst reicht ein einfaches UpdateAttributes() um das Lebewesen zu
+      // informieren.
+      res=Set(P_X_HEALTH_MOD, xmod);
+      environment()->UpdateAttributes();
+    }
+    else {
+      // wenn kein lebendes Env, reicht einfaches Setzen.
+      res=Set(P_X_HEALTH_MOD,xmod);
+    }
+  }
+
+  return res;
+
+}
+
+// P_X/M_ATTR_MOD werden nicht beruecksichtigt, da CUMULATIVE_ATTR_LIMIT
+// ueberschritten ist
+void NotifyXMAttrModLimitViolation()
+{
+}
+