1
0
Fork 0

Trying to do BeforeParsing mk 2

We can't ignore disambiguation after all.
This commit is contained in:
Alexander Yakovlev 2019-08-14 23:54:18 +07:00
parent c832e30b61
commit 9f5f797a6a
Signed by: oreolek
GPG key ID: 1CDC4B7820C93BD3

View file

@ -1,21 +1,24 @@
Global thing_to_examine;
[ UnknownVerb word thing n i;
[ BeforeParsing thing n i;
if (num_words > 1) {
rfalse;
}
thing_to_examine = NextWord();
! Check that such thing exists in scope, so that we don't catch
! compass directions or gibberish.
objectloop ( thing provides name) {
if (TestScope(thing, player)) {
n = thing.#name / WORDSIZE;
for(i = 0 : i < n : i++)
if (thing.&name-->i == word) {
thing_to_examine = thing;
return 'unknown';
if (thing.&name-->i == thing_to_examine) {
! At least one such thing exists, we can alter the input
buffer->0 = 'examine';
buffer->1 = thing_to_examine;
Tokenise__(buffer, parse);
rtrue;
}
};
};
rfalse;
];
[ ExamineObjectSub;
<< Examine (thing_to_examine) >>;
];
verb 'unknown' * -> ExamineObject;