Vorple gblorb command prompt issues

Hi everyone. I’m working on an ambitious commercial IF project, and I hope to release a Vorple version (for the general public) and a traditional gblorb version (for accessibility and playing on the go).

As I understand it, Vorple overrides the “>” command prompt when using a Vorple-enabled interpreter and does nothing when using a traditional Glulx interpreter. I get the expected behavior when testing my game in the Inform 7 6M62 IDE (normal command prompt), and in the Vorple JavaScript environment (Vorple command prompt).

However, when testing the .gblorb file produced by Inform 7 with Gargoyle and Glulxe, it appears that the command prompt fails to print at all; there is no “>” when reading the player’s command. This is especially troublesome because my game includes a dialogue system which prints dialogue options as part of the command prompt; on Gargoyle and Glulxe the dialogue options are never shown.

Just in case, I checked an earlier build of my game which did not include Vorple and everything worked as expected in the external interpreters. This suggests that this is a bug with Vorple.

Has anyone else encountered a similar problem? If anyone has ideas on how to solve this it would be greatly appreciated.

EDIT: I just tested my game in the Inform IDE again and it looks as though it isn’t working there either. I’ll keep digging and see what I can find.

EDIT 2: It turns out that this was being caused by a single Vorple interface rule:

A Vorple interface update rule (this is the construct Vorple status line rule):
	carry out the constructing the status line activity.

I have no idea why this would cause a Glulx interpreter to stop printing the command prompt, since my custom status line doesn’t interact with Vorple except through “if Vorple is supported…” statements.

EDIT 3: It appears that the Vorple interface update rules are called during Vorple’s command prompt replacement here:

Include (-
Replace PrintPrompt;
-) before "Printing.i6t".

Include (-
[ PrintPrompt i;
	FollowRulebook(RULEBOOK_TY_to_RULE_TY((+ Vorple interface update rules +)));	! ADDED
	RunTimeProblemShow();
	ClearRTP();
	style roman;
	EnsureBreakBeforePrompt();
	if( ~~(+ Vorple support +) )	TEXT_TY_Say( (Global_Vars-->1) );				! ADDED
	ClearBoxedText();
	ClearParagraphing(14);
];
-) after "Printing.i6t".

I have no experience with Inform 6 but I’m pretty sure that I’ve found a bug with the Vorple extension, since adding Vorple interface rules should reasonably have no effect on traditional interpreters.

2 Likes

Are you on the latest Vorple version? An issue with the interface update rules was fixed in 3.2.4 last month. I tried it with a minimal example (“Include Vorple Status Line by Juhana Leinonen. Lab is a room. When play begins: construct the Vorple status line with 2 columns.”) and the prompt displayed correctly in both Gargoyle and Glulxe. If you’re on at least 3.2.4 then the problem must be somewhere else, or a combination of other factors.

It’d be great if you could make an example that replicates the issue, or if you want to send me the project source code privately I can debug it from there.

I’m on Vorple 3.2.5, yes.

I’ve been doing some debugging, and my game works fine if I word the rule as

A Vorple interface update rule: If Vorple is supported...

It appears that constructing the Glulx status line in the middle of a command prompt is what’s causing the bug. I assume this is a low-level interpreter issue that isn’t necessarily connected to Vorple (but may be worth looking into anyway).

An aside: In the Inform 6 version of Hugo Labrande’s Neon Vertex, he uses this extension to create an effect where hovering over a command link prefills the command line. I found that this wasn’t replicated in Inform 7 and I had to write my own version of the function. It would be great to see this rolled into Vorple proper, since it’s just an additional instruction in the phrase to construct a hyperlink.