Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/room/death/death_room_vc.c b/room/death/death_room_vc.c
new file mode 100644
index 0000000..71038fb
--- /dev/null
+++ b/room/death/death_room_vc.c
@@ -0,0 +1,168 @@
+// MorgenGrauen MUDlib
+//
+// death_room_vc.c -- Das Standardobjekt fuer den VC-Todesraum
+//
+// $Id: death_room_vc.c 8988 2014-12-31 13:10:19Z Zesstra $
+
+
+#pragma strict_types
+
+#include <defines.h>
+#include <properties.h>
+#include <moving.h>
+#include <language.h>
+#include <wizlevels.h>
+#include <daemon.h>
+#include <new_skills.h>
+
+inherit "/std/room";
+
+public int no_attack();
+public int no_poison(int val);
+
+public void create()
+{
+  if (IS_BLUE(this_object())) return;
+    ::create();
+    
+    SetProp( P_GENDER, MALE );
+    SetProp( P_ARTICLE, 0 );
+    SetProp( P_LIGHT,1 );
+    SetProp( P_NO_TPORT, NO_TPORT_OUT );
+    SetProp( P_LOG_FILE, "TOD/Todesraum" );
+    SetProp( P_INT_SHORT, "Arbeitszimmer des Todes" );
+    SetProp( P_INT_LONG, break_string(
+             "Ein dunkler Raum, erleuchtet von dunklem Licht, das sich der "
+             "Dunkelheit nicht so sehr zu widersetzen scheint, indem es "
+             "leuchtet, als dass es der dunkelste Punkt in einer weniger "
+             "dunklen Umgebung ist. Im seltsamen Licht erkennst Du einen "+
+             "zentral aufgestellten Schreibtisch, der mit Diagrammen und "
+             "Buechern bedeckt ist. Die Waende verschwinden hinter Regalen, "
+             "die gefuellt sind mit in Leder gebundenen, dunklen Waelzern, "
+             "von denen geheimnisvolle Runen leuchten.\nTod.", 78, 0, 1 ) );
+    previous_object()->CustomizeObject();
+    call_other("/room/death/death_room","???");
+}
+
+void test_remove()
+{
+  if (!sizeof(all_inventory(this_object())&users()))
+    if (!this_object()->remove()) destruct(this_object());
+}
+
+public void reset()
+{
+  ::reset();
+  test_remove();
+  return;
+}
+
+public void exit(object liv)
+{
+  call_out("test_remove",2);
+  return;
+}
+
+
+static void deep_destruct( object ob )
+{
+    if ( objectp(ob) && environment(ob) == this_object() )
+        filter( deep_inventory(ob) + ({ ob }),
+                      lambda( ({'x/*'*/}), ({#'destruct, 'x}) ) );
+}
+
+public void init()
+{  
+  string prayroom;
+  int res;
+
+  ::init();
+  if ( !query_once_interactive(this_player()) ){
+      call_out( "deep_destruct", 0, this_player() );
+      return;
+  }
+
+  if ( !(prayroom = (string) this_player()->QueryPrayRoom()) )
+      prayroom = "/room/pray_room";
+  
+  if ( !this_player()->QueryProp(P_GHOST) )
+    {
+      if ( IS_WIZARD(this_player()) &&
+           this_player()->QueryProp(P_WANTS_TO_LEARN) )
+	{
+          if ( !this_player()->QueryProp(P_INVIS) )
+              tell_room( this_object(),
+                         "Der Tod sagt: WAS WILLST DU HIER, "+
+                         upperstring((string) this_player()->name())+"?\n"+
+                         "Der Tod sagt: DU BIST UNSTERBLICH, DU HAST HIER "
+                         "NICHTS ZU SUCHEN!\n\n" );
+	}
+      else 
+	{
+          write("Der Tod sagt: WAS TUST DU HIER? DEINE ZEIT IST NOCH "
+                "NICHT REIF!\n\n");
+          
+	  if ( catch(res = (int) this_player()->move( prayroom,M_GO|M_SILENT|M_NOCHECK ))
+               || res < 1 && environment(this_player()) == this_object() )
+              this_player()->move( "/room/pray_room", M_GO|M_SILENT|M_NOCHECK );
+	}
+      return;
+    }
+
+  if ( !IS_DEPUTY(this_player()) ){
+    add_action( "filter_ldfied", "", 1 );
+    this_player()->Set( P_TMP_MOVE_HOOK,
+                        ({ time()+31536000, 
+                           find_object("/room/death/death_room"), 
+                           "hier_geblieben" }) );
+  }
+
+  this_player()->Set( P_NO_ATTACK, #'no_attack, F_QUERY_METHOD );
+  this_player()->Set( P_POISON, #'no_poison, F_SET_METHOD );
+  
+  "/room/death/death_room"->add_player(this_player());
+}
+
+// public, da command_me() sonst buggt (Wurzels Speedy o.ae.)
+public int filter_ldfied( string str )
+{
+    // Description:   Filter out relevant commands.
+    string verb;
+    
+    verb=query_verb();
+    
+    if ( (verb == "schlafe" || verb == "schlaf") && str == "ein" ){
+        write("DU KANNST DEM TOD NICHT ENTRINNEN!\n");
+        return 0;
+    }
+    
+    if ( verb == "typo" || verb == "fehler" || verb == "bug" || verb == "idee" )
+        return 0;
+
+    write( "Dein Koerper gehorcht Dir nicht !\n" );
+    return 1;
+}
+
+public int no_attack()
+{
+  int i;
+
+  // Spieler haengt noch in der Todessequenz
+  if( present(previous_object()) )
+    return 1;
+  else
+    previous_object()->Set( P_NO_ATTACK, 0, F_QUERY_METHOD );
+
+  return 0;
+}
+
+public int no_poison(int val)
+{
+  if ( val != 0 )
+  {
+    catch( raise_error("Poisoning dead players is illegal. Calling object "
+      "was "+object_name(previous_object(1))+"\n");publish );
+  }
+  return 0;
+}
+