An observation on directions and another niggle in Numbered Disambiguation Choices

To the average punter: Did you know that each of the compass directions can be addressed by the word “direction”?

I didn’t, and found out when I typed X DIRECTION in my WIP, and was given a list like this:

Which do you mean, the 1) north, the 2) northeast, the 3) northwest, the 4) south, the 5) southeast, the 6) southwest, the 7) east, the 8) west, the 9) up, the 10) down, the 11) inside, the 12) outside

Note the numbers. They’re because I use Numbered Disambiguation Choices (NDC) by Aaron Reed (a spinoff from the Counterfeit Monkey version, then with even more tweaks). However, the extension by default can’t cope with objects (like directions) only things.

So the next thing that happened was I got a non-fatal run-time error when I chose anything. And, unlike when NOT using NDC, the choice didn’t convert to the helpful version of ‘X (direction)’ which normally tells you what room or non-exit lies in that direction. Instead, the game tried to look at the direction itself, giving ‘You can’t see any such thing.’

So this has been part FYI about DIRECTIONS, and I guess the other part is about NDC. If you’re as annoying as me, you can create a run-time error in Counterfeit Monkey in three inputs by typing X DIRECTION. Also, if you’ve got any rare directions in your game you were keeping up your sleeve, this command will show them, with or without NDC.

-Wade

4 Likes

The unskippable plural kind name strikes again. (The compiler cannot be dissuaded from adding 'directions' as the plural kind name, and that’s ten letters, so…)

(Looking forward to Use no automatic plural synonyms in the next release, thank you Zed.)

3 Likes

Hear, hear!

It’s been annoying me ever since I first started using Inform and I’d resigned myself to it as an eternally unavoidable “feature”.

1 Like

@drpeterbatesuk had a clever hack here to clobber plurals after the fact. He stresses there that, as written, that particular code doesn’t do the trick for directions, but one could special-case the direction case.

1 Like

For the Counterfeit Monkey case, does anyone know of a way to remove just the “direction” synonym for directions on 6M62?

EDIT: I see that the above post says that “one could special-case the direction case”, but I don’t know how.

The quick-and-dirty solution is

The plural of direction is ksuhfkjsdhf.
2 Likes

The mad scientist approach:

When play begins:
	repeat with d running through directions:
		depluralise d

To depluralise (d - a direction): (- RemoveDirectionPlural({d}); -).
		
Include (-
[ RemoveDirectionPlural o f p x y a n ;
if (o == 0) rfalse;                  ! null object
if (~~(o provides name)) rfalse; ! no name property
n = o.#name/WORDSIZE;  ! number of names in array
if (n < 2) rfalse;                   !  1 or no names in array
p = o.&name;                     ! address of name array
f = p-->0;                           ! first name in array
for (x=1:x<n:x++){
	y = p--> x;                  ! read dictionary address of next name in array
	if y == 'direction' {
		p-->x = f;            ! substitute with first name in array
	}
}
rtrue;
];
-).
3 Likes

Thanks a lot, both of you! I’ll try it out tomorrow.

EDIT: Both worked beautifully (after adding the missing parentheses to the second one.) I was worried that this would somehow affect the use of “directions” as a conversation subject (as in ASK FOR DIRECTIONS) but that still works. Thanks again!

EDIT 2: Fixed now!