Menus by Dannii Willis -- Why are the numbers gone?

In Inform 9.3, I was trying to get an old project working that uses the extension Menus by Dannii Willis. For some reason, the numbers in the menu (the numbers that tell you which key to press) are not showing up. Any idea what kind of thing in my code might be interfering with those? The version of the Menus extension I have installed is version 1/160728, but I don’t know what version was used in the original project, because when I type “version” in the original project, that extension is not listed. (Is there a way to make the authorial modesty extensions appear?) I do have an “include” line for the extension in the code.

It’s been so long since I’ve looked at that extension that I don’t really remember much about it sorry.

As described in WWI 27.6 Version numbering:

If we want our extension to go uncredited - perhaps if it is a low-level enabling sort of thing, for instance - we can place the following sentence inside the definition of the extension:

Use authorial modesty.

The same sentence placed in the body of a source text causes all extensions by the same author as the main source text to go uncredited. In other words, if Isaac Miggins writes a source text and includes, say, Unlikely Events by Isaac Miggins, then this extension will go uncredited in the VERSION command.

A complete list, undiluted by modesty, can always be obtained using:

say "[the/-- complete list of extension credits]"

You should also be able to open the extension itself via File/Open Extension/(author)/(extension) in the IDE pull-down menus.

Thanks, but I’m not sure how to use that to find the version used in an already-compiled game, which doesn’t necessarily use the same versions I currently have installed.

I think I might just substitute another menus extension anyway.

I don’t think I understand. You said you were trying to get an old project working, and it sounded like you have access to the source code. If that’s the case, then you should be able to compile the old source using a previous version of Inform from the current IDE.

Are you instead trying to reverse engineer a compiled game? If so, I’m not 100% sure that the information would be included, but you could try a decompiler or string extraction program.

Other than that, you could just install older versions of the extension and modify your Include... statement to try different versions to see if one of them works the way that it did before.

It’s a project that’s already published, but that I hadn’t touched in a while. I do have what I’m pretty sure is the same source code, but the source code doesn’t say what version of the Menus extension was used. It just says “Include Menus by Dannii Willis.” I know the menu numbers work in the previously published version of the game, and they don’t when I run it now from the source code.

I had to fiddle around with versions of other extensions and make some minor changes to the code to get it to compile (which now it does). For (most of?) the extensions that were causing problems with compiling, I was able to check what version was used before, but I couldn’t check for the Menus extension. I tried a couple versions of the Menus extension, but I don’t know what the “right” version is. Maybe I already have the “right” version of the Menus extension, and something else is messing up the numbers.

You could try throwing the old, working story file into glulx-strings and search for extension version numbers in the output. I believe that the full list (including those with authorial modesty) is compiled in even if the game never uses the “complete list of extension credits” phrase. When I tried this with Counterfeit Monkey, the output includes a lot more extensions than the VERSION command lists l, though not all of them has versions and I’m not sure why that is.

1 Like

It worked! Thanks! There was a long list of extensions right at the top.

List

Standard Rules version 3/120430 by Graham Nelson

Simple Followers version 7 by Emily Short

Conversation Package version 3 by Eric Eve

Common Commands Sidebar version 2/160404 by Alice Grove

Conversation Nodes version 7 by Eric Eve

Conversation Suggestions version 6/150607 by Eric Eve

Conversation Responses version 7 by Eric Eve

Conversational Defaults version 3 by Eric Eve

Conversation Framework version 11 by Eric Eve

Epistemology version 8 by Eric Eve

Standard Rules version 3/120430 by Graham Nelson

English Language version 1 by Graham Nelson

Basic Screen Effects version 7/140425 by Emily Short

Simple Followers version 7 by Emily Short

Glulx Text Effects version 5/140516 by Emily Short

Complex Listing version 9 by Emily Short

Conversation Package version 3 by Eric Eve

Common Commands Sidebar version 2/160404 by Alice Grove

Menus version 1/150128 by Dannii Willis

Conversation Nodes version 7 by Eric Eve

Conversation Suggestions version 6/150607 by Eric Eve

Flexible Windows version 15/160122 by Jon Ingold

Conversation Responses version 7 by Eric Eve

Conversational Defaults version 3 by Eric Eve

Conversation Framework version 11 by Eric Eve

Alternative Startup Rules version 1/140516 by Dannii Willis

Glulx Entry Points version 10/150620 by Emily Short

Epistemology version 8 by Eric Eve

Standard Rules version 3/120430 by Graham Nelson

English Language version 1 by Graham Nelson

Basic Screen Effects version 7/140425 by Emily Short

Simple Followers version 7 by Emily Short

Glulx Text Effects version 5/140516 by Emily Short

Complex Listing version 9 by Emily Short

Conversation Package version 3 by Eric Eve

Common Commands Sidebar version 2/160404 by Alice Grove

Menus version 1/150128 by Dannii Willis

Conversation Nodes version 7 by Eric Eve

Conversation Suggestions version 6/150607 by Eric Eve

Flexible Windows version 15/160122 by Jon Ingold

Conversation Responses version 7 by Eric Eve

Conversational Defaults version 3 by Eric Eve

Conversation Framework version 11 by Eric Eve

Alternative Startup Rules version 1/140516 by Dannii Willis

Glulx Entry Points version 10/150620 by Emily Short

Epistemology version 8 by Eric Eve

Now at least I’ll be able to check if I’m using the same version of Menus or not.

1 Like

Re “[the/-- complete list of extension credits]”:

Is it considered best practice to add a command for this into a game? (Does it violate some kind of understanding with extension authors who want to use “authorial modesty”?) Is there a typical command that people use for this in their games?

I think it’s included just for debugging purposes, for things like this when you want to be sure what extensions were used.

So it’s not supposed to be used in the released version (for future reference)?

Honestly, I don’t think anyone would especially mind if it was—the reason to “use authorial modesty” is generally to avoid gunking up the credits with one-line fixes and basic utilities, especially ones made by the creators of Inform themselves. If someone didn’t want their contribution mentioned at all, they wouldn’t release it under their own name.

Thanks!

Huh, this is interesting. I have the correct version of the extension in a “Dannii Willis” folder, which is in an “Extensions” folder, which is in the materials folder for my project, but that’s not the version Inform is using.

So I chose the “install extension” option, and it asked me if I wanted to overwrite the other version (the “wrong” version) and I said yes (even though I didn’t think I’d have to), and now it’s using the correct version. (I thought the menu numbers were fixed, but I was wrong. Using the correct version of the extension didn’t fix the problem.)

But…I thought Inform would automatically use the extensions that I put in a project-specific folder if they were different from the “main” versions that were installed???

Anyway, I think I’m going to use a different extension. But it was helpful to figure out that Inform wasn’t using the version of the extension that I thought it was using.