Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/beispiele/virtual/.readme b/doc/beispiele/virtual/.readme
new file mode 100644
index 0000000..7cbded2
--- /dev/null
+++ b/doc/beispiele/virtual/.readme
@@ -0,0 +1,2 @@
+Ein einfaches Beispiel fuer per virtual compiler erzeugte Objekte von Zesstra
+und ein leicht komplexeres von Hate.
diff --git a/doc/beispiele/virtual/hate/v_room.c b/doc/beispiele/virtual/hate/v_room.c
new file mode 100644
index 0000000..59c28fd
--- /dev/null
+++ b/doc/beispiele/virtual/hate/v_room.c
@@ -0,0 +1,12 @@
+inherit "/std/room";
+
+#include <properties.h>
+#include <defines.h>
+
+create()
+{
+        if(IS_BLUE(this_object())) return;
+        ::create();
+        previous_object()->CustomizeObject();
+        call_out(symbol_function("QueryObject", find_object(OBJECTD)), 2);
+}
diff --git a/doc/beispiele/virtual/hate/vr_compiler.c b/doc/beispiele/virtual/hate/vr_compiler.c
new file mode 100644
index 0000000..1a50d0b
--- /dev/null
+++ b/doc/beispiele/virtual/hate/vr_compiler.c
@@ -0,0 +1,85 @@
+// MorgenGrauen MUDlib
+//
+// VR_COMPILER.C -- virtual room compiler
+//
+// $Date: 2002/08/28 09:57:18 $
+// $Revision: 1.3 $
+/* $Log: vr_compiler.c,v $
+ * Revision 1.3  2002/08/28 09:57:18  Rikus
+ * auf strong_types umgestellt
+ *
+ * Revision 1.2  1994/07/27 14:48:18  Jof
+ * suid
+ *
+ * Revision 1.1  1994/02/01  19:47:57  Hate
+ * Initial revision
+ *
+*/
+
+// principle:
+// 	- inherit this object into your own 'virtual_compiler.c'
+//  - customize Validate() and CustomizeObject() for you own sake
+//  
+//  * Validate() checks if a room filename given as argument (without path)
+//    is valid and returns this filename with stripped '.c'!!
+//  * CustomizeObject() uses the previous_object()->Function() strategy to
+//    customize the standard object (for example to set a description)
+//
+// Properties: P_VALID_NAME, P_MIN_X, P_MAX_X, P_MIN_Y, P_MAX_Y
+
+#pragma strong_types
+
+inherit "/std/virtual/v_compiler";
+
+#define NEED_PROTOTYPES
+
+#include <thing/properties.h>
+#include <defines.h>
+#include <v_compiler.h>
+#include "/obj/virtual/vr_compiler.h"
+#include <sys_debug.h>
+
+void create()
+{
+  ::create();
+  SetProp(P_VALID_NAME, "raum");
+}
+
+string Validate(string file)
+{
+  int x,y;
+  string path, name;
+
+  file = ::Validate(file);
+	if((sscanf(file, "%s[%d,%d]", name, x, y) == 3) &&
+			name == QueryProp(P_VALID_NAME) &&
+		  (x >= QueryProp(P_MIN_X) && x <= QueryProp(P_MAX_X)) &&
+		  (y >= QueryProp(P_MIN_Y) && y <= QueryProp(P_MAX_Y))
+		)
+      return file;
+}
+
+mixed CustomizeObject()
+{
+	string path, file, name;
+	int x,y;
+
+	if(!(file = ::CustomizeObject())) return 0;
+
+	path = QueryProp(P_COMPILER_PATH);
+	sscanf(file, "%s[%d,%d]", name, x, y);
+	name = QueryProp(P_VALID_NAME);
+	if(y < QueryProp(P_MAX_Y))
+	    previous_object()->AddExit("norden", 
+		path+"/"+name+"["+(x  )+","+(y+1)+"]");
+	if(y > QueryProp(P_MIN_Y))
+	    previous_object()->AddExit("sueden", 
+		path+"/"+name+"["+(x  )+","+(y-1)+"]");
+	if(x < QueryProp(P_MAX_X))
+	    previous_object()->AddExit("osten" , 
+		path+"/"+name+"["+(x+1)+","+(y  )+"]");
+	if(x > QueryProp(P_MIN_X))
+	    previous_object()->AddExit("westen", 
+		path+"/"+name+"["+(x-1)+","+(y  )+"]");
+}
+
diff --git a/doc/beispiele/virtual/hate/vr_compiler.h b/doc/beispiele/virtual/hate/vr_compiler.h
new file mode 100644
index 0000000..673fc54
--- /dev/null
+++ b/doc/beispiele/virtual/hate/vr_compiler.h
@@ -0,0 +1,33 @@
+// MorgenGrauen MUDlib
+//
+// V_COMPILER.H -- a general virtual compiler object
+//
+// $Date: 1994/02/01 19:47:57 $
+// $Revision: 1.1 $
+/* $Log: vr_compiler.h,v $
+ * Revision 1.1  1994/02/01  19:47:57  Hate
+ * Initial revision
+ *
+*/
+
+#include <v_compiler.h>
+
+#ifndef __VR_COMPILER_H__
+#define __VR_COMPILER_H__
+
+#define P_VALID_NAME	"valid_name"
+#define P_MIN_X				"min_x"
+#define P_MAX_X				"max_x"
+#define P_MIN_Y				"min_y"
+#define P_MAX_Y				"max_y"
+
+#endif // __V_COMPILER_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __VR_COMPILER_H_PROTO__
+#define __VR_COMPILER_H_PROTO__
+
+#endif // __VR_COMPILER_H_PROTO__
+
+#endif //NEED_PROTOTYPES
diff --git a/doc/beispiele/virtual/zesstra/std_arena.c b/doc/beispiele/virtual/zesstra/std_arena.c
new file mode 100644
index 0000000..de2e5a2
--- /dev/null
+++ b/doc/beispiele/virtual/zesstra/std_arena.c
@@ -0,0 +1,20 @@
+inherit "/std/room";
+
+#pragma strong_types,save_types,rtt_checks
+#include <properties.h>
+
+protected void create()
+{
+    if(!clonep(TO))
+        return;
+    ::create();
+
+    SetProp(P_INT_LONG, break_string(
+          "Du stehst hier in einer voellig leeren Arena."
+          "Gegen wen solltest Du hier denn gleich kaempfen...?",78));
+    SetProp(P_INT_SHORT, "In einer Arena");
+    SetProp(P_LIGHT, 1);
+    SetProp(P_INDOORS,0);
+
+    AddExit("raus", "/gilden/abenteurer");
+}
diff --git a/doc/beispiele/virtual/zesstra/virtual_compiler.c b/doc/beispiele/virtual/zesstra/virtual_compiler.c
new file mode 100644
index 0000000..36753df
--- /dev/null
+++ b/doc/beispiele/virtual/zesstra/virtual_compiler.c
@@ -0,0 +1,32 @@
+inherit "/std/virtual/v_compiler.c";
+
+#pragma strong_types,rtt_checks,save_types
+
+#include <thing/properties.h>
+
+#define NEED_PROTOTYPES
+#include <v_compiler.h>
+#undef NEED_PROTOTYPES
+
+protected void create() {
+    ::create();
+
+    // jeder Spieler kriegt eine "Kopie" von std_arena als Raum.
+    SetProp(P_STD_OBJECT, __DIR__"std_arena");
+    SetProp(P_COMPILER_PATH, __DIR__);
+}
+
+public string Validate(string file)
+{
+    string raum, spieler;
+    //.c abschneiden
+    file=::Validate(file);
+    // wenn das gewuenscht file dem Schema "arena|spielername" folgt, ist es
+    // zulaessig.
+    if(sscanf(file,"%s|%s",raum,spieler)==2 && raum=="arena")
+       return file;
+
+    // nicht zulaessig.
+    return 0;
+}
+