ScopeWithin (lines 3067-3094)
Back to List
Browsing parserm.h
3067 ! ScopeWithin looks for objects in the domain which make textual sense
3068 ! and puts them in the match list. (However, it does not recurse through
3069 ! the second argument.)
3070 ! ----------------------------------------------------------------------------
3071
3072 [ ScopeWithin domain nosearch context x y;
3073
3074 if (domain==0) rtrue;
3075
3076 ! Special rule: the directions (interpreted as the 12 walls of a room) are
3077 ! always in context. (So, e.g., "examine north wall" is always legal.)
3078 ! (Unless we're parsing something like "all", because it would just slow
3079 ! things down then, or unless the context is "creature".)
3080
3081 if (indef_mode==0 && domain==actors_location
3082 && scope_reason==PARSING_REASON && context~=CREATURE_TOKEN)
3083 ScopeWithin(compass);
3084
3085 ! Look through the objects in the domain, avoiding "objectloop" in case
3086 ! movements occur, e.g. when trying each_turn.
3087
3088 x = child(domain);
3089 while (x ~= 0)
3090 { y = sibling(x);
3091 ScopeWithin_O(x, nosearch, context);
3092 x = y;
3093 }
3094 ];
Last updated 27 February 2004.
This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation.
Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Graham Nelson (graham@gnelson.demon.co.uk) assisted by C Knight.