Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/secure/simul_efun/set_is_wizard.c b/secure/simul_efun/set_is_wizard.c
new file mode 100644
index 0000000..001ccdb
--- /dev/null
+++ b/secure/simul_efun/set_is_wizard.c
@@ -0,0 +1,137 @@
+/* These are the special commands from the driver that are activated with
+ * set_is_wizard(). These functions must be added to the player object.
+ * Also set_is_wizard() must be called in the corresponding player object,
+ * not as an (simul-)efun.
+ */
+
+#include <commands.h>
+#include <driver_info.h>
+
+/* is_wizard:
+ *  1: has actions,
+ *  0: never had actions,
+ * -1: had actions once.
+ */
+private nosave int is_wizard;
+
+private int driver_malloc(string str)
+{
+    if(is_wizard <= 0)
+        return 0;
+
+    if(!sizeof(str))
+    {
+        write(efun::driver_info(DI_STATUS_TEXT_MALLOC));
+        return 1;
+    }
+
+    if(str == "extstats")
+    {
+        write(efun::driver_info(DI_STATUS_TEXT_MALLOC_EXTENDED));
+        return 1;
+    }
+
+    return 0;
+}
+
+private int driver_dumpallobj(string str)
+{
+    if(is_wizard <= 0 || sizeof(str))
+        return 0;
+
+    write("Dumping to /OBJ_DUMP ... ");
+    efun::dump_driver_info(DDI_OBJECTS);
+    efun::dump_driver_info(DDI_OBJECTS_DESTRUCTED);
+    write("done\n");
+    return 1;
+}
+
+private int driver_opcdump(string str)
+{
+    if(is_wizard <= 0 || sizeof(str))
+        return 0;
+
+    efun::dump_driver_info(DDI_OPCODES);
+    return 1;
+}
+
+private int driver_status(string str)
+{
+    int opt;
+    if(is_wizard <= 0)
+        return 0;
+
+    switch(str || "")
+    {
+        case "":
+            opt = DI_STATUS_TEXT_MEMORY;
+            break;
+
+        case "tables":
+        case " tables":
+            opt = DI_STATUS_TEXT_TABLES;
+            break;
+
+        case "swap":
+        case " swap":
+            opt = DI_STATUS_TEXT_SWAP;
+            break;
+
+        case "malloc":
+        case " malloc":
+            opt = DI_STATUS_TEXT_MALLOC;
+            break;
+
+        case "malloc extstats":
+        case " malloc extstats":
+            opt = DI_STATUS_TEXT_MALLOC_EXTENDED;
+            break;
+
+        default:
+            return 0;
+    }
+
+    write(efun::driver_info(opt));
+    return 1;
+}
+
+int set_is_wizard(varargs <object|int>* args)
+{
+    int oldval = is_wizard;
+
+    if(!sizeof(args))
+        raise_error("Too few arguments to set_is_wizard\n");
+    if(sizeof(args) > 2)
+        raise_error("Too many arguments to set_is_wizard\n");
+    if(!objectp(args[0]))
+        raise_error("Bad arg 1 to set_is_wizard()\n");
+    if(args[0] != this_object())
+        raise_error("Only set_is_wizard for the current object supported\n");
+    if(this_player() != this_object())
+        raise_error("The current object must be this_player() for set_is_wizard()\n");
+    if(sizeof(args) == 2 && !intp(args[1]))
+        raise_error("Bad arg 2 to set_is_wizard()\n");
+
+    if(sizeof(args) == 2 && !args[1])
+    {
+        if(is_wizard > 0)
+            is_wizard = -1;
+    }
+    else if(sizeof(args) == 2 && args[1]<0)
+    {
+         // Just return the old value.
+    }
+    else
+    {
+        if(!is_wizard)
+        {
+            add_action(#'driver_malloc, "malloc");
+            add_action(#'driver_dumpallobj, "dumpallobj");
+            add_action(#'driver_opcdump, "opcdump");
+            add_action(#'driver_status, "status", AA_NOSPACE);
+        }
+        is_wizard = 1;
+    }
+
+    return oldval > 0;
+}