I7 - check if transcripting is on when noting?

I’ve had a few issues where I’ve tried to note something but I forgot the transcript is not on–or vice versa from my testers.

Looking into Standard Rules we see stuff about switching the story transcript on/off. But the comment in brackets, treating the story transcript as a switch, does not quite work.

What sort of syntax is needed to make sure that the user does have a transcript on when he types something asterisked–without printing the extra transcript text?

[code]to check-transcript:
[if the story transcript is switched off:
say “The story transcript is switched off right now. Do you wish to switch it on?”;
if the player consents:
try switching the story transcript on;]
say “(Noted.)”;

After reading a command:
if the player’s command matches the regular expression “^<*\p>”:
check-transcript;
reject the player’s command;
[/code]

Thanks!

Include (-
[ CheckTranscriptStatus;
#ifdef TARGET_ZCODE;
return ((0-->8) & 1);
#ifnot;
return (gg_scriptstr ~= 0);
#endif;
];
-).

To decide whether currently transcripting: (- CheckTranscriptStatus() -)

When I’ve done testing for others, I’ve found it very easy to forget to generate a transcript. But really there shouldn’t even be an option for me to forget to turn it on. I recommend that you manually trigger the transcript command in your “when play begins” rule, so that the player can start transcripting immediately. You might even make it impossible to continue to play unless the transcript is on.

There is also an I6 boolean transcript_mode that is set when transcription is on. I suppose you could use it.

[code]To decide whether transcription is on: (- (transcript_mode == true) -).

To check transcript:
if transcription is on:
say “(Noted)[paragraph break]”;
otherwise:
say “The story transcript is switched off right now. Do you wish to switch it on?”;
if the player consents:
try switching the story transcript on.

After reading a command:
if the player’s command matches the regular expression “^<*\p>”:
check transcript;
reject the player’s command.[/code]

Only in Z-code.

Thanks, everyone. This is great. It’s good to have some exposure to Inform 6, and I think switching the transcript on when play begins (but only in a testing release) is pretty strong. I try not to be forgetful, but I am, so this is one more thing off my mind.

It’s good to know it doesn’t work in glulx–that won’t be an issue for what I’m currently trying to write, but I suppose a nag in the ABOUT section–or each time someone writes a comment–wouldn’t be too much.

For people newer than me, then, that’d be

[code]section force-transcript - not for release

include basic screen effects by Emily Short.

when play begins:
say “The below is just a check to make sure testers are writing a transcript. Hope it is not too annoying. It should not appear in release mode.”;
pause the game;
try switching the story transcript on;

[/code]

The code you posted will work in Glulx. It’s only the I6 flag that Felix mentioned that isn’t available under Glulx.

By the way, that “not for release” will prevent this code from being compiled into an external testing blorb (i.e., what you would normally send to betatesters). You might want to try using an extension such as Extended Debugging if you want to protect testing sections in this way for builds that you’re sending to external testers.

The windows version of the IDE has a “release for testing” option, which I assumed blorbed up a debug build (including testing commands and code marked “not for release”). Is this incorrect?

Allow me to plug Juhana’s “Parchment-Transcript” tool. It stores all transcripts on a website, so as long as you have access to one, you can set it up and then not only do your testers not have to remember to turn scripting on, they don’t even have to send you any files!

I’ve asked around a little bit, but here I’ll ask again: Is there anyone who’d be willing to set up Parchment-Transcript as a service for authors who don’t have their own LAMP websites?

I hope that you are correct, as this would suggest that the same feature might be coming to the Mac with the next release. I would love for the extension-based solution to be made obsolete.

The Mac IDE already has the same option. I thought it was the Windows version that lacked the feature? Or was it the Linux one?

On the Mac, “Release for Testing” doesn’t produce a blorb file, so it’s not really feature-complete. The IDE interpreters are very slow when it comes to testing with multimedia, so a blorbed release for even alpha testing is pretty much a necessity.

So I guess the question is whether the Windows and Linux versions of “Release for Testing” are similarly limited.

Huh, really. All this time I’ve assumed it did, because it clearly should. (I’ve been getting my debug-.z5 files by copying the “output.z5” intermediate out of the Build tree.)

Yeah, it doesn’t seem to make sense to call it a “release” build without blorbification.

I don’t remember every having tried it with a z-code game, but when you do a Glulx game, you get essentially the same .ulx file that you can dig out of the Build folder. I would guess that the process is the same for z-code, and you’d end up with a .z# file.