Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/secure/guestmaster.c b/secure/guestmaster.c
new file mode 100644
index 0000000..0304d8d
--- /dev/null
+++ b/secure/guestmaster.c
@@ -0,0 +1,60 @@
+// MorgenGrauen MUDlib
+//
+// guestmaster.c -- Verwalter von Gast-Logins
+//
+// $Id: guestmaster.c 8909 2014-08-20 21:33:55Z Zesstra $
+#pragma no_clone,no_inherit,no_shadow
+#pragma strict_types,save_types,rtt_checks
+
+#include <wizlevels.h>
+
+nosave int max_guests = 10; /* Max no. of guests. -1 is 'unlimited' */
+nosave object *guests = ({});
+nosave int *ltime = ({});
+
+protected void create()
+{
+ seteuid(getuid());
+}
+
+nomask int new_guest () {
+ int ix;
+
+ if (!max_guests) return 0;
+ if (load_name(previous_object()) != "/secure/login")
+ return 0;
+
+ if ((ix = member(guests,0)) == -1) {
+ ix = sizeof(guests);
+ if (max_guests < 0 || ix < max_guests)
+ {
+ guests += ({ 0 }), ltime += ({ 0 });
+ }
+ else {
+ int mintime, minix;
+ mintime = time();
+ for (ix = 0; ix < sizeof(guests); ix++) {
+ if (guests[ix] && ltime[ix] < mintime) {
+ mintime=ltime[ix];
+ minix=ix;
+ }
+ }
+ ix = minix;
+ }
+ }
+ return ix+1;
+}
+
+nomask void set_guest (int ix, object pl) {
+ if (load_name(previous_object()) != "/secure/login") return;
+ guests[ix-1] = pl;
+ ltime[ix-1] = time();
+}
+
+nomask int query_max_guests() { return max_guests; }
+nomask int set_max_guests(int v) {
+ if (!process_call() && LORD_SECURITY)
+ max_guests = v;
+ return max_guests;
+}
+