Suggestion for next version of standard rules

This doesn’t rise to the level of an error, so I’m not filing on the bug tracker; I’m not sure where else to put it, so I’m posting it here.

For some future release of I7, could single letter abbreviations for directions be moved out of the standard rules, ideally into a language-specific module or at least some place that can overridden?

My current issue is that I’d like to use S for north, but S will always mean “south”, no matter what else it means. I’m obligated to put in a disambiguation rule, which is not a big deal, but a little inelegant.

It may not happen to often, but people probably run up against this from time to time when they want n,s,e,w,u,d to mean something other than a specific direction in their games.

  • Jack

I actually did a prototype where I reversed the player’s typed direction for plot-specific reasons (got a lot of help here how to do this). Could this code work for you until there was a way to rewrite single letter abbreviations? (I’ll look for it.)

I think it’s basically:

Before going: if the noun is a direction: now the noun is the opposite of the noun;

[rant=full code from Alice Aforethought Inform][code]Volume 2 Mirror Directions

yourself can be mirrored.

Before going when yourself is mirrored:
if the noun is a direction:
now the noun is the opposite of the noun;
if the noun is nowhere:
say “[one of]Something is curious. Everything around makes a sickening sort of whirl and I’m facing the opposite direction…[or]Whoosh! Once again, I find yourself facing the completely opposite direction intended which is not where I wanted to go. Curiouser and curiouser.[or]The surface underfoot twists around and seems to shake itself, and I am facing the wrong way again.[or]Bother! I am facing oppositely as everything spins around.[or]Hmn. This actually makes a sort of turnaround-backward sort of sense: When I raise your right hand in the mirror, the other Alice raises her left hand. Perhaps I need to try going the opposite direction I expect when first emerging through the looking glass?[or]Ugh! Wrong way! That’s disorienting![stopping]”;
say “[l]Okay…everything is backwards from what I expected, but I have my bearings now. If you tell me to travel [one of]northward, I’ll actually go southward[or]eastward, I’ll go westward[or]upward, I’ll go downward[cycling] instead. I’ve make the requisite adjustment in my mind that [i]that way[/] is now ‘north’ and every other direction is adjusted accordingly so you needn’t concern yourself consciously with giving me mirror-directions further.[one of][or][or][or][p]I know I’m repeating things over and over, but I have learnt that reciting these little speeches completely in full is often the only method for keeping curious situations logical in mind.[cycling]”;
now the player is not mirrored;
[/code][/rant]

It’s quite easy to make changes to the Standard Rules; you just have to provide a replacement for the relevant section in your source file (or you could put it into an extension). The replacement needs to be headed with something like

Section - Directions (in place of Section SR1/4 - Directions in Standard Rules by Graham Nelson)

Then cut and paste that section from the Standard Rules, making any changes you want to.

Inform has a feature request page: inform7.uservoice.com/ . You should post this there.

It sounds like the real feature request is “make it easier to change the names-understood for directions.” It doesn’t really make sense to move those names out of the Standard Rules, because the Standard Rules contain all the understood English grammar for Inform. I think what you’re running into is that there’s a built-in mechanism to delete standard verbs (“Understand the command … as something new”) but none for changing standard nouns (yourself, the directions). Aside from replacing sections, as jrb described.

I am experiencing a different, but possibly related problem. I’m trying to map “o” as a direction, but “o” is a single letter abbreviation for “oops”, which doesn’t even appear in the standard rules.

I tried this: The overhead is a direction. The overhead has opposite deck. Understand the command "o" as something new. Understand "o" as overhead when the location is nautical. But it didn’t work.

Right, “oops” (like “undo”) is defined at a very low level of the I6 parser code. You have to modify this at the I6 template layer.

Include (-
...
-) instead of "Vocabulary" in "Language.i6t".

Copy in the appropriate section from I6T/Language.i6t (in the compiler package), and change the constant OOPS2__WD to some other string.

Thanks, Zarf.

Thanks Hanon & jrb & zarf,

Nine years of dabbling with Inform 7 and I had no idea about how easy it is replace bits of the standard rules (maybe that’s good in a sense to avoid self-inflicted injury, but it also seems like something that could be made a little more visible for would-be tweakers).

I also didn’t know that there was a suggestion site. Zarf formulated this just right – for the sake of parallelism, I’d like some way to override tokens associated with objects – particularly for objects that are accepted as commands, like directions. I’ll submit that suggestion now…

Cheers,

Jack