Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/LPC/initialisation b/doc/LPC/initialisation
new file mode 100644
index 0000000..61f3c2b
--- /dev/null
+++ b/doc/LPC/initialisation
@@ -0,0 +1,93 @@
+CONCEPT
+
+ VARIABLE INITIALIZATION
+
+DESCRIPTION
+ Global variables, like their local counterparts, can be defined
+ with an initial value:
+
+ int * a = ({ 3, 4 });
+
+ The initialization value can be any legal LPC expression,
+ including function calls. The code for the initializations is
+ collected in a compiler-generated function __INIT() which is
+ called even before the create-hook is applied on the object.
+
+ During initialization, blueprints and clones are treated
+ slightly differently:
+
+ Blueprint variables are always all initialized using __INIT().
+
+ For clones the programmer can select whether the clone's
+ variables should also be initialized with __INIT(), or if they
+ should be assigned from the current blueprint values
+ ('shared with the blueprint'). The latter method is useful for
+ example if blueprints and clones shall share arrays or
+ mappings.
+
+ The selection is performed with the two pragmas
+ 'init_variables' and 'share_variables'. The status of this
+ pragma at the point of the first variable definition counts,
+ and is applied to all variables in the program.
+
+ The clone initialization method is evaluated per-program, i.e.
+ if an inherited program defines 'share_variables' and the child
+ program doesn't, only the inherited variables are initialized
+ from the blueprint, and all others from __INIT().
+
+ The default setting for the pragma is configured into the
+ driver, but can also be chosen when starting the driver.
+
+EXAMPLE
+ For the object
+
+ ----------
+ inherit "a";
+ int a = 4;
+ int b;
+ ----------
+
+ the compiler executes the equivalent of these __INIT() functions:
+
+ #pragma share_variables:
+
+ unknown __INIT()
+ {
+ "a"::__INIT();
+ if (clonep(this_object()))
+ {
+ a = (blueprint of this_object())->a;
+ }
+ else
+ {
+ a = 4;
+ }
+ return 1;
+ }
+
+
+ #pragma init_variables:
+
+ unknown __INIT()
+ {
+ "a"::__INIT();
+ a = 4;
+ return 1;
+ }
+
+
+ In either case the variable 'b' (in fact all variables) are
+ set to '0' as part of the loading/cloning process before the
+ driver performs the specific initialisation.
+
+WARNING
+ Do not call __INIT() yourself, overload, or use it directly in
+ any other way. The implementation of the variable
+ initialization may change at any time.
+
+HISTORY
+ Before LDMud 3.3.378, the choice between sharing and initializing
+ variables was a fixed configuration choice of the driver.
+
+SEE ALSO
+ pragma(LPC), create(H), invocation(D)