Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/items/furz.c b/items/furz.c
new file mode 100644
index 0000000..b46b5a8
--- /dev/null
+++ b/items/furz.c
@@ -0,0 +1,108 @@
+/*
+Letzte Aenderung: 29.01.01 von Tilly (Zusatz-Abfrage in heart_beat() )
+                  25.08.01 von Tiamak (Tillys Abfragen debuggt ;^)
+*/
+#pragma strong_types,rtt_checks
+
+inherit "/std/thing";
+#include <properties.h>
+#include <language.h>
+#include <moving.h>
+
+int    alter;
+string furzerWER,furzerWESSEN;
+
+void create()
+{
+  if(!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT, 0);
+  SetProp(P_LONG, 0);
+  SetProp(P_INVIS,1);
+  SetProp(P_NAME, "Etwas");
+  SetProp(P_GENDER, 1);
+  SetProp(P_ARTICLE,0);
+  SetProp(P_NOGET,"Haeh?\n");
+  AddId("_furz_");
+  if (this_player())
+    AddId("Furz_"+getuid(this_player()));
+  alter = 0;
+  set_heart_beat(1);
+}
+
+void heart_beat()
+{
+  int i;
+  if(!environment())
+  {
+    set_heart_beat(0);
+    destruct(this_object());
+    return;
+  }
+  if(living(environment()))
+  {
+    set_heart_beat(0);
+    destruct(this_object());
+    return;
+  }
+  if (!alter)
+    tell_room(environment(), "Fuerchterlicher Gestank erfuellt den Raum.\n");
+  alter++;
+  if (!random(10))
+  {
+    i = random (5);
+    if (i==0)
+      tell_room(environment(), furzerWESSEN+" Furz stinkt wirklich grauenerregend.\n");
+    if (i==1)
+      tell_room(environment(), "Du haeltst Dir die Nase zu.\n");
+    if (i==2)
+      tell_room(environment(), "Widerliche Duenste erfuellen den Raum.\n");
+    if (i==3)
+      tell_room(environment(), "Der Furz riecht, als wuerde " + furzerWER +" innerlich verfaulen.\n");
+    if (i==4)
+      tell_room(environment(), "Du musst Dich beinah uebergeben, als " + furzerWESSEN + " Furz in Deine Nase kriecht.\n"); 
+  }
+  if (alter==45) {
+      tell_room(environment(), furzerWESSEN + " widerlicher Furz hat sich endlich verzogen.\n");
+      destruct(this_object());
+    }
+}
+
+
+void set_alter(int a)
+{ alter=a; }
+
+void set_furzer (object wer)
+{
+  if (objectp(wer))
+    {
+      furzerWER=wer->name(WER);
+      furzerWESSEN=wer->name(WESSEN);
+      AddId("Furz_"+getuid(wer));
+    }
+}
+
+varargs int move(mixed dest, int methods, string direction, string textout,string textin)
+{
+  int erg;
+  object otherfurz;
+
+  erg=::move(dest,methods,direction,textout,textin);
+  
+  // Vanion, 24.09.02: Kann sein, dass das move nich klappt,
+  //                   dann sollte das Objekt weg.
+  if (erg != MOVE_OK || !environment(this_object())) 
+  {
+    if (!remove()) destruct(this_object());
+    return 0;
+  }
+  if (this_player())
+    {
+      if (otherfurz=present("Furz_"+getuid(this_player())+" 2",environment()))
+	{
+	  otherfurz->set_alter(0);
+	  return remove();
+	}
+    }
+  return erg;
+}