Open eriktorbjorn opened 5 years ago
For reference, the objects that I weren't able to query about at the start of the game:
I was eventually able to query for all of them, by first discovering them, except for one: FLOWSWITCH
. I'm not sure why that one's different.
I noticed by chance that there are some object that have a
CLC-TXT
, but which Whiz can't query about at the start of the game, e.g. Fred.For reference, the object I found were
CHIPS0
,CHIP1
,CHIP2
,FLOWSWITCH
,DEADBOT
,SMASHED-BOX
andFUSE
.But I could have sworn that I used to be able to query about Fred back when I originally played the game. And as it turns out, I can. But only after I open the cabinet he's inside.
Which led me to wonder... does this apply to all closed containers? Let's find out:
That makes no sense from a player perspective.
I'm still a bit fuzzy on the exact details, but I think what happens is this: The
QUERY
verb probably tries to match objects the standard way first. If that doesn't work, it callsGLOBAL-CHECK
to check for local globals, pseudo objects, global objects etc.If
GLOBAL-CHECK
still doesn't find any objects, it has a special case for when the current robot is Whiz, the verb isQUERY
and Whiz is plugged in. That's when you get the "CLC: Hmm. That's a tough one ..." message.It then uses
MOBY-FIND
, which apparently iterates through every room and callsSEARCH-LIST
for each of them. Here's the condition for whether this routine will recurse into containers in the room:NOBJ
isn't actually used, so it's not a problem if this is never set.I think the intention here is that the
QUERY
verb is always allowed to recurse through everything. But it won't, because the verb is just one of the conditions. Maybe it should be something like this instead?