Pronoun double weirdness

I’m using 6M62, but the phenom I’m about to describe still holds true in current Inform.

99% of the time, if you use a pronoun to try to refer to something that’s not in scope, the game responds with “You can’t see ‘him’ (nothing) at the moment.”

Shouldn’t the ‘nothing’ be the name of the thing you’re trying to address?

The extra weirdness is if you try to show this with a test command, it doesn’t happen, but instead says ‘You can’t see any such thing.’

Try this demo. Run ‘test me’. You’ll get ‘You can’t see any such thing’:

Lab is a room. Toilet is east of lab.
the parking attendant is a man in the lab.

test me with "pronouns/e/x him."

Then RESTART, and do it manually -

PRONOUNS
E
X HIM

Now you get “You can’t see ‘him’ (nothing) at the moment.”.

My primary interest is in getting the game to say the name of the pronouned entity instead of ‘nothing’.

-Wade

2 Likes

If you remove the period at the end of your test me command string, you do get the same (nothing) response in 6M62.

… and if you include the period in your manual commands, you also get the same You can't see any such thing. response.

Huh. There are two problems.

6M62 fix
Include (-

! ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
! Parser.i6t: CantSee
! ==== ==== ==== ==== ==== ==== ==== ==== ==== ====

[ CantSee  i w e;
	saved_oops=oops_from;

	if (scope_token ~= 0) {
	    scope_error = scope_token; return ASKSCOPE_PE;
	}

	wn--; w = NextWord();
	e = CANTSEE_PE;
	if (w == pronoun_word) {
		w = NextWordStopped(); wn--;
		if ((w == -1 or THEN1__WD or THEN2__WD or THEN3__WD) || (line_token-->(pcount) ~= ENDIT_TOKEN)) { ! MODIFIED
			if (pcount > 0) AnalyseToken(line_token-->(pcount-1));
			if ((pcount > 0) && (found_ttype == ROUTINE_FILTER_TT or ATTR_FILTER_TT))
				e = NOTINCONTEXT_PE;
			else {
				pronoun__word = pronoun_word; pronoun__obj = pronoun_obj;
				noun = pronoun_obj; ! ADDED / could change .GiveError handling, instead
				e = ITGONE_PE;
			}
		}
	}
	
	if (etype > e) return etype;
	return e;
];

-) instead of "CantSee" in "Parser.i6t".
1 Like

Thanks for the extra observations and the fix!

-Wade