Inform - Support - Source

Back to List

Inventory
Complete

Backward
Forward

Plain
Coloured
Gaudy

This code
in plain text

Browsing verblibm.h

LookSub (lines 1571-1633)

1571  [ LookSub allow_abbrev  visibility_levels i j k;
1572    if (parent(player)==0) return RunTimeError(10);
1573   
1574    .MovedByInitial;
1575    if (location == thedark) { visibility_ceiling = thedark; NoteArrival(); }
1576    else
1577    {   visibility_levels = FindVisibilityLevels();
1578        if (visibility_ceiling == location)
1579        {   NoteArrival();
1580            if (visibility_ceiling ~= location) jump MovedByInitial;
1581        }
1582    }
1583   
1584    !   Printing the top line: e.g.
1585    !   Octagonal Room (on the table) (as Frodo)
1586   
1587    new_line;
1588    style bold;
1589    if (visibility_levels == 0) print (name) thedark;
1590    else
1591    {   if (visibility_ceiling ~= location) print (The) visibility_ceiling;
1592        else print (name) visibility_ceiling;
1593    }
1594    style roman;
1595   
1596    for (j=1, i=parent(player):j<visibility_levels:j++, i=parent(i))
1597        if (i has supporter) L__M(##Look,1,i);
1598                        else L__M(##Look,2,i);
1599   
1600    if (print_player_flag==1) L__M(##Look,3,player);
1601    new_line;
1602   
1603    !   The room description (if visible)
1604   
1605    if (lookmode<3 && visibility_ceiling==location)
1606    {   if ((allow_abbrev~=1) || (lookmode==2) || (location hasnt visited))
1607        {   if (location.describe~=NULL) RunRoutines(location,describe);
1608            else
1609            {   if (location.description==0) RunTimeError(11,location);
1610                else PrintOrRun(location,description);
1611            }
1612        }
1613    }
1614   
1615    if (visibility_levels == 0) Locale(thedark);
1616    else
1617    {   for (i=player, j=visibility_levels: j>0: j--, i=parent(i))
1618            give i workflag;
1619        
1620        for (j=visibility_levels: j>0: j--)
1621        {   for (i=player, k=0: k<j: k++) i=parent(i);
1622            if (i.inside_description~=0)
1623            {   new_line; PrintOrRun(i,inside_description); }
1624            Locale(i);
1625        }
1626    }
1627   
1628    LookRoutine();
1629    ScoreArrival();
1630   
1631    action=##Look;
1632    if (AfterRoutines()==1) rtrue;
1633  ];


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.