CantSee (lines 2830-2858)
Back to List
Browsing parserm.h
2830 ! The CantSee routine returns a good error number for the situation where
2831 ! the last word looked at didn't seem to refer to any object in context.
2832 !
2833 ! The idea is that: if the actor is in a location (but not inside something
2834 ! like, for instance, a tank which is in that location) then an attempt to
2835 ! refer to one of the words listed as meaningful-but-irrelevant there
2836 ! will cause "you don't need to refer to that in this game" rather than
2837 ! "no such thing" or "what's 'it'?".
2838 ! (The advantage of not having looked at "irrelevant" local nouns until now
2839 ! is that it stops them from clogging up the ambiguity-resolving process.
2840 ! Thus game objects always triumph over scenery.)
2841 ! ----------------------------------------------------------------------------
2842
2843 [ CantSee i w e;
2844 saved_oops=oops_from;
2845
2846 if (scope_token~=0) { scope_error = scope_token; return ASKSCOPE_PE; }
2847
2848 wn--; w=NextWord();
2849 e=CANTSEE_PE;
2850 if (w==pronoun_word)
2851 { pronoun__word=pronoun_word; pronoun__obj=pronoun_obj;
2852 e=ITGONE_PE;
2853 }
2854 i=actor; while (parent(i) ~= 0) i = parent(i);
2855 if (i has visited && Refers(i,wn-1)==1) e=SCENERY_PE;
2856 if (etype>e) return etype;
2857 return e;
2858 ];
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.