Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/applied/init b/doc/applied/init
new file mode 100644
index 0000000..17675da
--- /dev/null
+++ b/doc/applied/init
@@ -0,0 +1,70 @@
+SYNOPSIS
+        void init()
+
+DESCRIPTION
+        The H_MOVE_OBJECT0/1 implement the details of moving objects.
+        In older drivers, init() was called to handle the adding of
+        actions, and a lot of hook implementations still follow this
+        tradition.
+
+        The main purpose of this function is to publish the commands
+        an object implements to other, living objects. Traditionally,
+        whenever a living object enters the vicinity of another
+        object, init() is called in the latter and this_player() will
+        point to the former object. This happens mutually should both
+        objects happen to be living.
+
+        Or more formally:
+
+            If the object O that moves is marked as living then first
+            call init() of the destination object D with this_player()
+            set to O.
+
+            Then apply the two following rules for each object C
+            inside D:
+
+                    If C is marked as living then call O->init() with
+                    this_player() set to C.
+
+                    If O is marked as living then call C->init() with
+                    this_player() set to O.
+
+            Finally, if D is marked as living then call O->init(),
+            with this_player() set to D.
+
+        Starting with 3.2.1, the actual move handling became part of the
+        object library, so a given installation may implement any other scheme
+        of calling init().
+
+        One caveat: commands defined in the player object for the player
+        himself should not be defined in init(), as these commands would be
+        added to _other_ players whenever they happen to be nearby. Instead
+        use a separate function ("add_player_commands()" or so) which
+        is called during the creation of the player.
+
+EXAMPLE
+        (This example assumes a traditional implementation of the
+         movement handling)
+
+        Lets say we have a object structure of living (l1 and l2) and
+        non living objects (n1 and n2) as the following:
+
+        l1
+           n1
+           l2
+           n2
+
+        If we now move another living object l3 into l1, the call
+        suequence of the init() functions looks like this:
+
+        l1->init()  first init() of the destination will be called
+        n1->init()  now iterate throw the inventory of the destination
+        l3->init()
+        l2->init()
+        n2->init()
+        l3->init()  and finally call init() of the object that has
+                    been moved
+
+SEE ALSO
+        add_action(E), set_environment(E), environment(E), move_object(E),
+        hooks(C)