                           MicroEngine v0.4
"simple script-file preprocessor and executor using plugin-provided commands"

 2008 (C) Soul Slinger @ gorcx.net/forum)
 _unless where otherwise stated_
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.






 Compilation: run make in src directory, if you're compiling for windows,
run "make windows" - be aware that I have not checked if this works...

 Runtime: Working directory should be set to the directory containing the
"microengine" binary and "data" directory, at runtime it will try to load
all shared objects withing "./data/plugins/" with the suffix ".plugin" and
preprocess "./data/init.script", after which the preprocessed "code-blocks"
is run (translated into pointer to C functions provided by the plugins) and
the program will clean up and exit.

 Notice that the plugins will have access to all libraries loaded by the
microengine program, and the functions within the program (not including
the functions of type "static"). All plugins can use the library "plugin.h"
to get access to certain usually needed functions and definitions (basic
stuff for now, needs more work).


 The script(s) have 4 non-optional code-blocks:

   _load_   (run directly after loading/preprocessing of the script is done,
             normaly at microengine startup)
   _unload_ (run just before the script is unallocated, normaly at microengine
             termination))
   _init_   (run as soon as the script is to be used, ex: when spawning an
             object))
   _term_   (run when the script is not needed anymore, ex: when the object
             is destroyed)

 Support for custom blocks is planed, and could for example be called when
the script is used for controlling a car, in which custom blocks are run
for handling inputs for controlling the steering, throttle, weapons, etc.



								/Slinger
