Alternatives to Title Page for 6L38?

Hi! I’m trying to program a title page for a project I’m working on, that displays before the story proper begins (there are a couple rationales behind this, one being mature content, one being a real-time, unpausable component, which make this almost essential as far as I am concerned) (speaking of which, thanks to whomever updated my real-time extension to work with the latest build!)

Title Page by Jon Ingold seems the most likely candidate; however, it breaks something, probably with one of the included extensions, when trying to use it, and removing the extension fixes this problem. Any suggestions as to how to work around / replace?



The copy I have of Title Page (version 2) utilizes a procedural rule. This won’t compile, as procedural rules are now not just deprecated but strictly forbidden.

Looking around on the Web, I don’t find a clear explanation of how to replace procedural rules. Nor does the built-in Documentation explain this. (I searched for “procedural.” Nothin’.)

Are you getting a different error message, one not related to this problem? Which version of Title Page are you using?

Can anyone suggest how to replace procedural rules? Surely this process must be documented somewhere.

I think the usual way to replace a procedural rule that tells you to ignore something is “The foo rule does nothing when…” So in this case you could try “The title screen rule does nothing when the skip intro option is active.” (The syntax that Title Page used for testing use options has also been removed from the latest version of Inform, I believe.)

This is documented in section 19.5 of the latest Writing with Inform. (The example there, with the Pointy Hat of Liminal Transgression, used to be the example for how to use a procedural rule.)

Thanks. Yes, after commenting out the line about the skip intro option, I still get an error message about testing use options. I have no idea how one would fix that.

I’m just kind of poking around here, trying to figure out just how moldy the extensions scene has gotten and how easy or difficult it would be to clean it up. I did manage to fix my own Notepad extension – that was dead easy.

What error did you get exactly? I notice that there’s a line “if using the menus option” which I think has to turn into “If the menus option is active.” But there’s also a lot of I6 inclusions and screen effects stuff in there which is beyond my understanding.

Yes – making that change, and also changing a couple of “change … to” to “now … is” and dumping the procedural rule, it now compiles and produces a very basic title screen. Whether I’ve introduced bugs, I don’t know.

What I’m wondering is, is there a central place where things like the change from “if using” to “if … is active” are documented? Seems to me that would be extremely useful information for anyone who wants to use an older extension with the new build. That and what the heck to do to replace procedural rules with something that has equivalent functionality.

The changes are documented in the changelog:

I knew that. It’s a really long document. I was hoping someone had extracted the relevant bits about syntax changes and posted it somewhere. I guess I’ll have to see about doing that myself.

I actually tried to do something like this on the Inform 7 subreddit. Unfortunately, that place is dead so the only contributor was me and I really had no idea what had changed.

Not sure if you got it all worked out but here is the version I worked with, it will compile to 6L38 just fine.

[code]Version 2 of Title Page by Jon Ingold begins here.

“Provides an intro panel to the game, offering a menu, a restore and restart prompt, a quotation and (under Glulx) a picture.”

section 1 - inclusions

Include Menus by Emily Short.
Include Basic Screen Effects by Emily Short.

section 2 - definitions

Use menus translates as (- Constant USE_MENUS; -).
Use skip intro translates as (- Constant Skip_Intro; -).

[The quotation is some text that varies. The quotation is “[story headline]”.]

To say quotation:
say " Chapter Name Here[line break] An Interactive Tale"[say story headline]

The intro menu is a table-name that varies. The intro menu is the Table of Sample Options.

To centre (t - an indexed text), bold or italic:
let N be the number of characters in T;
say spaces to centre N;
if bold, say bold type;
if italic, say italic type;
say T;
say roman type.

To say spaces to centre (n - a number) – running on:
(- print “^”; spaces (((VM_ScreenWidth() - {n})/2)-1);

Section 3 - cover art (for Glulx only)

[Include Glulx Image Centering by Emily Short.] [Have not had a chance to work on this part yet, I believe the issue here was with ability to compile all of the necessary extensions. Will work this out and post results]
[Figure opening figure is the file “cover.jpg”.
To display art if appropriate: display figure opening figure centered;]

Section 3b - no cover art (for Z-machine only)

To display art if appropriate: do nothing.

Section 4a - title screen rule

The first when play begins rule (this is the title screen rule):
while 1 is 1 begin;
clear the screen;
redraw status line;
centre “[story title]”, bold;
centre " Name of Release Here[line break] Sub-Heading Here", bold; [ third title line, bold;]
centre " by [story author]";
say paragraph break;
[display art if appropriate;]
say line break;
say fixed letter spacing;
say[centre] " [quotation]";[, italic;]
say roman type;
say paragraph break;
say fixed letter spacing;
[if the[using] menu option is active,
say " Display help menu : M[line break]";] [NOT SURE THAT THIS IS NEEDED]
say " [paragraph break]Title Here[paragraph break] - from the beginning : (SPACE)[line break][line break]";
say " - from a previous save : R[paragraph break][paragraph break]";
say “To Exit the Game : Q[line break]”;
say variable letter spacing;
let k be 0;
while k is 0 begin;
let k be the chosen letter;
end while;
if k is 13 or k is 31 or k is 32 begin;[this is the HTML unicode designation for carriage return, space, and unit separator]
clear the screen;
make no decision;
otherwise if k is 113 or k is 81;[this is the HTML unicode designation for q and Q][WRITE SOME OPTIONS HERE SUCH AS SAVE GAME AND A LINK THAT GOES BACK TO INTRO]
say “[line break]You decide that now is not the time to enter the game.”;
stop game abruptly;
otherwise if k is 82 or k is 114;[this is the HTML unicode designation for R and r]
follow the restore the game rule;
otherwise if k is 109 or k is 77;[this is the HTML unicode designation for m and M]
if [using the] menus option is active begin;
now the current menu is the intro menu;
carry out the displaying activity;
end if;
end if;
pause the game;
end while;

Section 5 - the debug option - not for release

[A procedural rule when using the skip intro option:
ignore the title screen rule.]

Title Page ends here.[/code]