Custom Banner and Version by Zed Lopez


This extension kidnaps the printing the banner text activity and the version command and replaces them with exact duplicates. And then provides the story author a toolkit for customizing them.

This is an example banner, by the default:

Banner
An Interactive Fiction by Zed Lopez
Release 1 / Serial number 220214 / Inform 7 build 6M62 (I6/v6.36 lib 6/12N) SD

Release and Serial number are in reference to your particular story. Release is the I7 global variable Release Number, which defaults to 1. Serial number is the date of compilation; the I7 compiler hard-codes this into the I6 output.

The Inform license obliges that an Inform 7 game prints a "banner conforming to the standard library's banner at an early stage in play: in particular, this banner must contain the information that the story file was compiled by Inform, and the version numbers of compiler and library used."

"Library" here refers to the I6 Template Layer (my guess is that a lot of people have seen "lib 6.12/N" a lot of times without ever knowing that). 6/12N is the library release number (and has been the same for at least 6G60 through 6M62). The "library serial number" given with by version command is also associated with the I6 Template Layer (and has remained constant at 080126 for at least 6G60 through 6M62. These are defined in Output.i6t. (Since 6.12/N thus does little to identify the specific version of the library used and the I7 version number *does* of itself imply some particular version, one could argue that including 6.12/N is superfluous toward identifying the library. But it has traditionally been there.)

So for the things we *must* include in the banner to be compliant with the license, the following should suffice:

"[I7 version-name] / [I6 version-name] / [I6T version-name]"

The Banner Day example below gives an example of omitting the story headline if it hasn't been changed from the default.

This is an example of default version command output:

Banner
An Interactive Fiction by Zed Lopez
Release 1 / Serial number 220214 / Inform 7 build 6M62 (I6/v6.36 lib 6/12N) SD
Identification number: //C1BA3705-8444-4887-B03B-880F32CFB1DB//
Interpreter version 1.3.6 / VM 3.1.2 / Library serial number 080126
Standard Rules version 3/120430 by Graham Nelson
Custom Banner and Version version 1 by Zed Lopez

By default, the version command repeats the banner and prints the story's IFID number. The interpreter version is just that, the version of, e.g., Quixe, or Glulxe, or Git in use. (It would be somewhat more useful if the interpreter were also identified by name.) VM is again, just that, the version of Glulx or the Z-Machine in use. The library serial number was explained above.

Finally, it lists the extension credits of those included extensions that didn't specify they were using authorial modesty. Extensions in the Public Library, or formerly available on the Inform 7 website, or in the Friends of I7 Github repo were/are released under a Creative Commons Attribution license. The existing version command behavior doesn't have much to do with what actually satisfying the terms of this license would look like, but we pretend that it does. Cross your fingers that an extension author (or their heir) doesn't start calling for actual compliance. At any rate, the list of extension credits should not be removed.

This extension also defines a "say bibliographic details" phrase to output an equivalent of the bibliographic card in the Project Index.

Chapter Easy replacements

Suggested pre-made alternatives for each of the banner and the version output are included. You can use either or both of these Use options:

Use abbreviated banner text.
Use abbreviated version.

These would produce for the banner:

Banner Day
An extension example by Zed Lopez

Made with Inform 7 6M62 / I6 6.36 / I6T 6/12N

and for the version:

Banner Day
An extension example by Zed Lopez
Release 1/220215
IFID: C1BA3705-8444-4887-B03B-880F32CFB1DB

Made with Inform 7 6M62 / I6 6.36 / I6T 6/12N
Standard Rules version 3/120430 by Graham Nelson
Custom Banner and Version version 1/220215 by Zed Lopez

or, if the headline hasn't been changed from the default, banner:

Banner Day by Zed Lopez

Made with Inform 7 6M62 / I6 6.36 / I6T 6/12N

and version:

Banner Day by Zed Lopez
Release 1/220215
IFID: C1BA3705-8444-4887-B03B-880F32CFB1DB

Made with Inform 7 6M62 / I6 6.36 / I6T 6/12N
Standard Rules version 3/120430 by Graham Nelson
Custom Banner and Version version 1/220215 by Zed Lopez

Chapter References regarding Inform License Obligations

Section Inform License excerpt

A story file produced with the Inform system belongs to whoever wrote it and may be sold for profit if so desired, without the need for royalty payment, provided that it prints a game banner conforming to the standard library's banner at an early stage in play: in particular, this banner must contain the information that the story file was compiled by Inform, and the version numbers of compiler and library used.

Section Recipe Book 11.1. Start-Up Features excerpt

When the story file starts up, it often prints a short introductory passage of text (the "overture") and then a heading describing itself, together with some version numbering (the "banner"). It is traditional that the banner must appear eventually (and one of the few requirements of the Inform licence is that the author acknowledge Inform somewhere, for which the banner is sufficient).

Chapter Banner Day

Section Banner Day story

This adds a "biblio" command to print the bibliographic data and otherwise demonstrates how one would perform the equivalent customizations one would get with:

Use abbreviated banner text.
Use abbreviated version.

Example: * Banner Day

"Banner Day" by Zed Lopez

Include Custom Banner and Version by Zed Lopez.

Lab is a room.

To say story header:
if the story headline is the default story headline begin;
say "[b][story title][/b][if story author is not empty] by [story author][end if][line break]";
else;
say "[b][story title][/b][line break]";
say "[story headline][if story author is not empty] by [story author][end if][line break]";
end if;

For printing the banner text:
say story header;
say I7 credit;

This is the custom version rule:
say story header;
say "Release [release number]/[story serial number][line break]";
say "IFID: [story IFID][line break]";
say line break;
say I7 credit;
say "[the list of extension credits]";

The custom version rule is listed instead of the version command output rule in the carry out versioning rules.

Biblioing is an action out of world.
Understand "biblio" as biblioing.
carry out biblioing: say bibliographic details.

Test me with "version / biblio".

Section Banner Day output

anner Day by Zed Lopez

Made with Inform 7 6M62 / I6 6.36 / I6T 6/12N

Lab

>test me (Testing.)

> version Banner Day by Zed Lopez Release 1/220215 IFID: C1BA3705-8444-4887-B03B-880F32CFB1DB

Made with Inform 7 6M62 / I6 6.36 / I6T 6/12N Standard Rules version 3/120430 by Graham Nelson Custom Banner and Version version 1/220215 by Zed Lopez

> biblio

Title: Banner Day Author: Zed Lopez Headline: An Interactive Fiction Genre: Fiction Release number: 1 First published: 2022 Language of play: English IFID: C1BA3705-8444-4887-B03B-880F32CFB1DB Story description: None