Inform - Support - Source

Back to List

Inventory
Complete

Backward
Forward

Plain
Coloured
Gaudy

This code
in plain text

Browsing verblibm.h

NextEntry (lines 90-128)

0090  !  The WriteListFrom routine, a flexible object-lister taking care of
0091  !  plurals, inventory information, various formats and so on.  This is used
0092  !  by everything in the library which ever wants to list anything.
0093  !
0094  !  If there were no objects to list, it prints nothing and returns false;
0095  !  otherwise it returns true.
0096  !
0097  !  o is the object, and style is a bitmap, whose bits are given by:
0098  ! ----------------------------------------------------------------------------
0099   
0100  Constant NEWLINE_BIT    1;    !  New-line after each entry
0101  Constant INDENT_BIT     2;    !  Indent each entry by depth
0102  Constant FULLINV_BIT    4;    !  Full inventory information after entry
0103  Constant ENGLISH_BIT    8;    !  English sentence style, with commas and and
0104  Constant RECURSE_BIT   16;    !  Recurse downwards with usual rules
0105  Constant ALWAYS_BIT    32;    !  Always recurse downwards
0106  Constant TERSE_BIT     64;    !  More terse English style
0107  Constant PARTINV_BIT  128;    !  Only brief inventory information after entry
0108  Constant DEFART_BIT   256;    !  Use the definite article in list
0109  Constant WORKFLAG_BIT 512;    !  At top level (only), only list objects
0110                                !  which have the "workflag" attribute
0111  Constant ISARE_BIT   1024;    !  Print " is" or " are" before list
0112  Constant CONCEAL_BIT 2048;    !  Omit objects with "concealed" or "scenery":
0113                                !  if WORKFLAG_BIT also set, then does _not_
0114                                !  apply at top level, but does lower down
0115  Constant NOARTICLE_BIT 4096;  !  Print no articles, definite or not
0116   
0117  [ NextEntry o odepth;
0118    for(::)
0119    {   o=sibling(o);
0120        if (o==0) return 0;
0121        if (lt_value ~=0 && o.list_together~=lt_value) continue;
0122        if (c_style & WORKFLAG_BIT ~= 0 && odepth==0 && o hasnt workflag)
0123            continue;
0124        if (c_style & CONCEAL_BIT ~= 0 && (o has concealed || o has scenery))
0125            continue;
0126        return o;
0127    }
0128  ];


Last updated 27 February 2004. This web site has not been fully supported since April 2008. Information may be out of date. This page was originally managed by Graham Nelson (graham@gnelson.demon.co.uk) assisted by C Knight.