I’m going to be showing Blue Lacuna at the IndieCade games festival in L.A. next month. I’d like to do something similar to what I did at Slamdance four years ago with Whom the Telling Changed, and record a transcript of all the people who interact with the game at the festival. This would provide an interesting, semi-empirical comparison to see if highlighted keywords make IF less frustrating.
For Slamdance, I’d paid a friend of mine to modify the Gargoyle source code to hack this in. I’m no longer in touch with him, however, so I’m trying to roll something myself in I7 this time. This is as far as I’ve gotten:
Include (-
[ SWITCH_TRANSCRIPT_ON_R newFileName;
if (actor ~= player) rfalse;
if (gg_scriptstr ~= 0) rfalse; !return GL__M(##ScriptOn, 1);
newFileName = "bl-" + (string) random(10000000) + "-script";
if (gg_scriptfref == 0) {
!gg_scriptfref = glk_fileref_create_by_prompt($102, $05, GG_SCRIPTFREF_ROCK);
print (string) newFileName;
gg_scriptfref = glk_fileref_create_by_name($102, newFileName, GG_SCRIPTFREF_ROCK);
if (gg_scriptfref == 0) jump S1Failed;
}
! stream_open_file
gg_scriptstr = glk_stream_open_file(gg_scriptfref, $05, GG_SCRIPTSTR_ROCK);
if (gg_scriptstr == 0) jump S1Failed;
glk_window_set_echo_stream(gg_mainwin, gg_scriptstr);
!GL__M(##ScriptOn, 2);
!VersionSub();
return;
.S1Failed;
return;
!GL__M(##ScriptOn, 3);
];
-) instead of "Switch Transcript On Rule" in "Glulx.i6t".
The idea is supposed to be that each time this routine runs, it creates a new file with a random number in its name, without showing any messages to the user at all regardless of success or failure. (Yeah, this is a nasty hack, etc., etc… it’s just for one computer at one venue.) What I’ve got so far is broken for apparently a couple of reasons: I guess you can’t dynamically create strings this easily in I6, and also apparently I’m not giving the glk_fileref_create_by_name function the sort of string it expects.
(Oh, and I need to compile Blue Lacuna with build 5Z71, in case that makes a difference.)
Any pointers?