Test Substitutions for Creating My Own Banner

I am trying to customise the banner in my game. I basically want it to display the same, except instead of just showing “Release 1” (as a whole number), I want it to include the subnumber (which I defined earlier) as “Release 1.14”, for example. The release number and release subnumber are displaying exactly as I want them to, but I can’t figure out how to display the serial number and the Inform version.

Here’s the code that works:

To say the/-- banner text:
	say "[bold type][story title][roman type][line break]";
	say "An Interactive Fiction by [story author][line break]";
	say "Release [release number].[no line break][release subnumber][paragraph break]".

I want to be able to display the banner like this:

An Interactive Fiction by C. Scott Davis
Release 1.14 / Serial number 230328 / Inform 7 v10.1.1 / D

but I can’t figure out any text substitutions for the serial number and Inform 7 version. I’ve tried every variation I can think of (starting with [serial number]), but none of them work. I’d be okay leaving off the Inform 7 version, if I have to, but I’d really like to include the serial number.

Does anyone know the text substitutions for the serial number and Inform 7 version?

Much thanks, as always!

1 Like

You have to expose some I6 stuff.

To say story serial number: (- PrintSerialNumber(); -).
To say i7 version number: (- PrintI7VersionNumber(); -).

Include (-
[ PrintSerialNumber i;
    for (i=0 : i<6 : i++) print (char) ROM_GAMESERIAL->i;

[ PrintI7VersionNumber;
	print (PrintI6Text) I7_VERSION_NUMBER;

When play begins:
	say "Serial: [story serial number] / I7: [i7 version number].";

For compiling to 9.3/6M62 and previous (not relevant in this instance), you’d need instead:

[ PrintI7VersionNumber;
	print (PrintI6Text) NI_BUILD_COUNT;

Note that you lose the special banner style when you do this. If you care to keep it, you can use this in 9.3 and 10.1:

To start header style: 
	(- VM_Style(HEADER_VMSTY); -)

To say header style:
	start header style;