Refreshing the Status Line and When the Player Consents

That’s in chapter 17 (Activities) of the built-in docs (section 17.21).
But climbingstars’s is a nice, flexible solution to the problem.

(It’s also possible to redefine an I7 ‘phrase’ defined in an extension from within your source code (rather than defining a new one). So just putting

To pause the/-- game: say "[paragraph break]-- MORE --"; wait for the SPACE key; clear the screen. in your code should work, if you’re not opting for that extra flexibility.)

You can open (and even edit) built-in and any other installed extensions from within the IDE. On Windows you find them under File>Open Extension>

If you want to change the text of the status line, you can do so like this.

now the left hand status line is "(some text)"
now the right hand status line is "(some text)"

However, if you want to blank out the status, even temporarily, try this.

Rule for constructing the status line: stop.
Rule for constructing the status line when (this bit is true): stop.

Hope this helps.

(chuckling) While these examples help spell some things out, I don’t need to change what’s already in the status line, or make it go away.

If I recall correctly, usually drawing the status line doesn’t take place until right at the end of any given turn. I’m trying to get the status line to show up before the end of the turn, and before the “MORE” is printed. :smiley:

Thanks for trying, though! :smiley:

Felix,

I’ve been over that section several times, and “still haven’t found what I’m looking for.” :cry:

Unfortunately, I am trying to get that extra flexibility. :blush:

Thank you! That helps immensely! :wink:

Cheers,

A couple of posts ago the I6 routine DrawStatusLine was mentioned. To call it in Inform 7, you need to define a ‘phrase’ and use that phrase inside some rule that the game runs.
Emily Short define such an I7 phrase in an extension called “Menus”. So, if you have included the extension Menus by Emily Short (it’s built-in but not automatically included – “built-in” only means you don’t have to download it and install it separately) in your game, you can use her I7 phrase ‘redraw status line’ to achieve the desired effect.
If you don’t need that extension, simply reuse her definition in your own source code: To redraw status line: (- DrawStatusLine(); -).
Now you can write a rule like:

When play begins: say "Now you see me ..."; redraw status line; pause the game; say "... now you don't."
or make it part of a custom ‘pause the game’ phrase:

To pause the/-- game saying (message - text): redraw status line; say "[paragraph break][message]"; wait for the SPACE key; clear the screen; say paragraph break.

Felix,

After thinking it over Saturday afternoon, I came to the same conclusion that you did. After successfully implementing the solution, I saw your post here. I was happily surprised to find that Emily had already used the identical “redraw status line” command I had settled on. :wink: :smiley:

I also managed to figure out the “[MORE]” prompt I was trying to implement before the banner, as well. Thanks yet again for your help! :smiley:

[code]“Forcing the Status Line 02” by Jay Goemmer

Include Basic Screen Effects by Emily Short.

The story headline is “An Interactive Example”.

To redraw status line: (- DrawStatusLine(); -).

When play begins:
say “Introductory text here.[paragraph break]”;
say “[bracket]MORE[close bracket]”;
wait for any key;
clear the screen.

Chamber is a room. The printed name is “Featureless Chamber”. The description is “Type CHICK to begin the demonstration.”.

Midair is a room. The printed name is “Suspended in Midair”.

Endgame is a room. The printed name is “That’s all, folks!”

Understand “chick” as transport one.

Transport one is an action applying to nothing.

Report transport one:
clear the screen;
move the player to Midair, without printing a room description;
say “[line break]Narrative text here.[paragraph break]More narrative text droning on.[paragraph break]Rattling on nonsensically some more.[paragraph break]”;
redraw status line;
say “[bracket]MORE[close bracket]”;
wait for any key;
clear the screen;
move the player to Endgame, without printing a room description;
say “Thanks for coming. You can let yourself out by typing ‘QUIT.’”.[/code]