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 . 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