The main documentation for ZIL programming is Infocom's "Learning ZIL" manual, which you can find at http://www.xlisper.com/zil.pdf This doc describes the differences between ZILF's v0.6 library and the description of ZIL found in "Learning ZIL", including, at the bottom of this doc, what is not yet implemented in the ZILF library. The code that comprises the library is part of parser.zil. -- New OPENABLEBIT bit. If an object with CONTBIT also has OPENABLEBIT, then it can be opened and closed by the player. An object with CONTBIT and OPENBIT but no OPENABLEBIT flag will be considered always open. An object with just CONTBIT assigned to it is considered a sealed-off container (the author can make certain game events add OPENBIT and/or OPENABLEBIT to such a container to make it an accessible container). -- If an object has a TEXT property, that TEXT will show, along with any LDESC, when the object is EXAMINED. If the object is READ, only the TEXT will be shown. -- New TEXT-HELD property. If an object has a TEXT-HELD property, the string associated with it will only be shown if the player is holding the object and performs a READ on the object (for books, etc). -- New DEVICEBIT to indicate a device can be turned on and off. ZIL used LIGHTBIT for this. In ZILF, LIGHTBIT is used solely to indicate something providing light. -- "Learning ZIL" describes objects as having a default SIZE and CAPACITY of 5, if the author does not specify them. If such default containers tested their CAPACITY against a default object (being inserted)'s SIZE, then all default containers could only hold 1 default object max (object of SIZE 5 filling the container's CAPACITY of 5), which seems less than useful. Therefore, in ZILF, if an container is not assigned a CAPACITY, it will accept an unlimited number of objects of SIZE 5 or under. Thus an author who does not want to worry about SIZE and CAPACITY can simply leave them off all objects, and any containers will always accept any objects. Then for special cases, SIZE and CAPACITY can be specified (for the very special case of a container that is infinite in capacity, but only allows objects of a certain size or below, the author can either specify a very large CAPACITY along with the desired SIZE limit, or custom handle PUT-IN in the object's ACTION routine). -- ZILF has the WEIGHT routine, as described in "Learning ZIL", but also a CONTENTS-WEIGHT, which only adds up the SIZEs of the objects in the chosen container - not adding the size of the container itself and also not recursing down through any containers within the primary container. -- PICK-ONE in early versions of ZIL randomly picked any element from a given table, and was later replaced by aversion that would randomly cycle through all elements of the given table before repeating any of them. ZILF offers both. PICK-ONE does the cyclic 'shuffling' (no repeats til all elements have been displayed once). PICK-ONE-R is the totally random version (repeats likely). Tables used with PICK-ONE must have the numeral 2 as their first element. Both PICK-ONE and PICK-ONE-R tables must be LTABLES. -- The ZIL Manual is a little inconsistent about how a multiple-turn WAIT can/can't be interrupted. In ZILF, any routine that returns TRUE (whether an I-EVENT, the room's M-END RARG, whatever) will interrupt a WAIT which is running though a sequence of passed turns. However, if a routine ends with a RFALSE, WAIT will continue to cycle on to additional passed turns after the routine. The default number of turns that pass with WAIT is set by the global STANDARD-WAIT variable. -- New WAIT-TURNS routine. Pass a number to it, it will pass that number of game turns in the same fashion as a player-called WAIT. -- New EDIBLEBIT (not in ZIL manual) for verb EAT WHAT'S NOT IMPLEMENTED IN THE ZILF LIBRARY -------------------------------------------- The following are not implemented yet as of v 0.7: General - All mouse and graphic routines Properties PLURAL (note this is different from PLURALBIT, which is implemented) SDESC OWNER ADJACENT Bits FLAMEBIT BURNBIT SEARCHBIT (ZILF does not use the abitrary level-of-containment limit when searching through visible & accessible objects) VEHBIT RLANDBIT RWATERBIT RAIRBIT OUTSIDEBIT INTEGRALBIT PARTBIT NALLBIT DROPBIT INBIT Routines UNTOUCHABLE? WITHIN? TOUCHING? CANT-SEE CAPITAL-NOUN?