Quick fix for 6L02 library messages

There’s a bug in the Standard Library that causes ungrammatical responses in some edge cases. For example, for trying to wave a person or animal the response is “But you aren’t holding he” (or she).

You can fix it by adding the following code to your project:

The can't drop what's not held rule response (A) is "[We] [haven't] got [regarding the noun][them]."
The can't wear what's not clothing rule response (A) is "[We] [can't wear] [regarding the noun][them]!"
The can't wear what's not held rule response (A) is "[We] [aren't] holding [regarding the noun][them]!"
The can't wear what's already worn rule response (A) is "[We]['re] already wearing [regarding the noun][them]!"
The can't wave what's not held rule response (A) is "But [we] [aren't] holding [regarding the noun][them]."
The block setting it to rule response (A) is "No, [we] [can't set] [regarding the noun][them] to anything."
The can't take what's already taken rule response (A) is "[We] already [have] [regarding the noun][them]."

Note though that this also changes the response in the more common cases. As zarf put it:

Could this be fixed by creating a “[those]” substitution?

There is a [those] substitution, and that’s what the Standard Library uses, and that’s the gist of the problem. “We haven’t got [those]” expands to “We haven’t got (s)he” in the third person singular.

I’m hoping that at some point in the near future, someone will assemble a list of these post-release fixes. I won’t be ready to start working with I7 again* for at least a month, more likely two months, and at that point (assuming there has been no bug-fix update) it would be really great not to have to trawl through a bunch of threads to find tips like this.

  • At the very least, to fix my extensions, and possibly even to update my now completely outdated Handbook.

I see. So basically, “those” breaks the assumption that the plural form contains everything we need to know about a noun’s case.

This is just a straight up bug in the implementation of the “[those]” substitution. It should be a pretty easy fix.

Graham is expecting that there will need to be a maintenance release at some point (on the order of weeks), given that there was so much change in this build that new bugs were pretty much guaranteed to crop up. I would imagine this issue can be fixed in such a release, rather than becoming some sort of long-running business that everyone needs to include a fix for if they have a portable dog in their game.

But you can’t just change he/she to him/her in the [those] substitution – when used as a subject it should still use he/she: “[Those] [aren’t] available”, “[Those] [can’t contain] things” etc. Are you going to add a new substitution token for when [those] is used as an object?

I suppose maybe you could get away with the capitalized version being nominative and the lowercase version accusative, but it sounds risky.

What I’d really like to see is for the accusative forms of [the noun] and [the second noun] to automatically say “[themselves]” whenever they match the actor. Can we have that?

Hm, both interesting points. I’ll link to this discussion from the bug report.

Even if it worked everywhere in the standard rules, someone’s game would break. The problem with [that], [these], and [those] is the same problem that sent me to use [we] instead of [you] for pronoun substitutions.

I’m also leery of automatically using the reflexive (themselves, &c.). The reflexive to my ears only belongs when its antecedent has just been mentioned very recently, and no other time.

So “he treated himself to ice cream” would be fine because the person appears twice in the sentence, but “he treated themselves to ice cream” doesn’t work because whatever “themselves” is referring to isn’t the same as what “he” refers to. So an across-the-board [the noun] always printing the reflexive would cause a lot of headaches, since it assumes [the actor] also refers to the same thing as [the noun] at all times, which is rarely the case.

I agree that automated reflexives need to be used with caution. They gave me quite a headache in adv3Lite (which inherited them from the Mercury parser, which in turn was over-eager to use them). OTOH it may be as easy for the standard rules to check whether a noun or second noun is the same as the actor as it would be for rules defined by game authors. We don’t want to see responses like “You don’t want to hit him” in response to HIT ME (assuming someone had customized the response in such a way) since “him” implies an attempt to hit someone else.

I suspect that limiting automatic reflexives to when the noun or second noun matches the actor is likely to be safe (though it would be worth seeing if someone can think up any exceptions); it’s when one tries to move beyond that (e.g. in cases where the noun is mentioned twice, or the noun and the second noun are the same) that one is more liable to run into trouble; such cases probably are better handled by particular rules that, for example, forbid inserting something into itself (and so can use the [themselves] substitution in any case).

Well, if you ever wanted to write a message where the noun was in the subject position, the reflexive would be incorrect here. Say you wanted to change the block wearing response to “That doesn’t fit you.” And in fact, though it’s slightly controversial, I don’t think the following response is correct (I think it’s hypercorrect, really):

In general I think it’s better practice to expose more stuff to the author, so as to allow for more flexible prose, though perhaps flexible reflexives could go into a new substitution defined by an extension; something that produces the reflexive if it matches the actor and another thing that produces a reflexive if it matches the thing regarded, perhaps?

Would it be too much to ask writers to say

[the noun reflexive of the actor]

?

Or what if reflexive applied to the prior named noun?

[We] [treat] [the noun] to [the second noun]

might produce

and

hmm… but then

isn’t quite right.

Also, I think I’m starting to get what you mean about applying “those” to reflexives - it’s a problem in a sentence with two nouns. But would anyone ever use “those” in a sentence with two nouns?

Obviously the solution is to change the English language to make these words distinct.

That wouldn’t be a problem if “those” had two forms for nominative and accusative - the nominative case would never become reflexive. But it would still be a problem if you said “[The noun] doesn’t fit you.” Maybe we need a lower-context form: “[The noun in nominative case]” or “[The noun as a subject]” or [The noun in subject position]" versus “[The noun in accusative case]” or “[The noun as an object]” or even “[The noun in noun/second noun position].” That would avoid the need for explicit “To say the noun” and “To say the second noun” phrases, which would probably also be risky.

Sorry, the problem wasn’t with “that” but with “you” – when the actor is the player (in second person) we want it to say “That doesn’t fit you” rather than “That doesn’t fit yourself.” And if the actor is third-person Alice we want it to say “That doesn’t fit her” rather than “That doesn’t fit herself.” Etc. The problem isn’t so much that the noun is in the subject position as that the actor isn’t.

Oh, I gotcha. But I thought of something that would help:

We could create new phrases such as “[the direct object]”, “[the indirect object],” which would indirectly trigger “[the noun as an object]” and “[the second noun as an object]”.

The “as an object” would be necessary to trigger the reflexive, so “[Those] [don’t] fit [us]” wouldn’t ever trigger a reflexive, while “[We] [can’t] wear [the direct object]” would.

Something would still have to be done with “those,” but we’d never say “those” when we meant “us.”

That’s clever, it wouldn’t disrupt the flow of the writing as much as [the noun as an object] and such. Is there already an [ourselves] token for the reflexive of the player?

Yes, see 14.4.

It isn’t. The whole “actor = noun” (or second noun) thing was the easy part. The system must also know that the actor was recently printed, and, in the same sentence or so. Inform can’t know that with any certainty.

And even that is assuming that the actor was printed first with the 1st/2nd noun printed afterward, rather than vice-versa. Questions in particular can reorder nouns.

I just think the whole idea of automatic printing of reflexives is such a special case with so many gotchas that is isn’t worth trying. If the player wants the possibility of a reflexive in a particular spot, let them use an explicit say-phrase saying so. It’s not like there’d be a huge number of places. But having standard phrases like [the noun] pick when to use reflexives sounds like it will annoy more than it would help.