Alan Library
------------

These files are the proposed Alan standard library version 0.3.1. The 
actual library files (the files with a filename extension of ".i") are
added to the source code of your game by "$include'ing" the main file
called std.i -- see the text file 'notes.txt' for details.

The second line of each library file lists the previous library versions 
with which it is completely compatible

For example, if its completely compatible with, or unchanged from, the last
three library versions then the line will read:

	-- Library version 0.1, 0.2, 0.3

Files which are changed so that they are not *exactly* compatible with any 
previous versions except for library 0.3 then the second line will be:

	-- Library version 0.3

This might make it easier to decide if this new version of the library
will affect your work. Note however that even very small incompatible
changes are considered *incompatible*. For example, the introduction of 
one single "the" in a message might seem trivial but might change the 
appearance of the message if the author had made allowance for this deficency 
in his work.

----

You can find an index of sorts in the file 'index.txt'.

Additional notes and tips about using std.i are in the file 'notes.txt'.

----

About the structure of the library

The library consists of a set of files each focusing on one aspect of
player commands or actions. One such file should contain everything
that is necessary to use the Alan definitions.

E.g. the CHECKs in the EAT verbs in 'eat.i' refers to a edible
attribute, so the file should also define such an attribute to be
globally available for all OBJECTs. It should also (and does) contain
the necessary SYNTAX for the eat VERB.

Breaking up the library in many small pieces has one huge
advantage. If you need to do some modification to the library you can
do that in just one file. Furthermore, by using the include directory
switches/options to the Alan compiler you can keep the complete
library in a separate directory (say C:\ALAN\LIBRARY) and only copy
the library files you want to modify to your games directory (say
C:\MY\GAME). The Alan compiler will always try to find an included
file in the current directory first and only if not found there try
the directories listed with -include options on the command line (or
equivalent).

So a viable set of commands to modify the eat.i file *just for this
game* would be:

	C:\MY\GAME> copy \ALAN\LIBRARY\eat.i eat.i
	C:\MY\GAME> edit eat.i
	C:\MY\GAME> alan -include \ALAN\LIBRARY game.alan

(supposing game.alan included the main library file std.i)

When a modified library is released it should (in theory) be possible
just to start using the new library, thus benefitting from new
features in the new version of the library, except where you made your
local modifications, eg:

	C:\MY\GAME> alan -include \ALAN\2.8\LIBRARY game.alan

This is the reasoning behind the proposed structure. 

----

The library is a work in progress. Comments and expansions to this 
library are most welcome!

The 'proposed standard library was written by Thomas Nilsson
<thomas.nilsson@progindus.se>. This version of the library has been 
updated by Stephen Griffiths (sg@xtra.co.nz). Please email bug reports 
and suggestions to Stephen.

----

Visit the Alan Home Pages at

	http://www.welcome.to/alan-if




