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;
+}
+