curiousdannii-testing / inform7-imported-bugs

0 stars 0 forks source link

[I7-1373] [Mantis 1409] Skein does not record Glulx replacement commands #711

Closed curiousdannii-testing closed 2 years ago

curiousdannii-testing commented 2 years ago

Reported by : Draconis

Description :

If a command is executed via a Glulx replacement command (e.g. from timed input or a hyperlink), it is not recorded in the Skein and thus does not get replayed. This makes it difficult to debug games with hyperlinks.

Steps to reproduce :

Include Inline Hyperlinks by Daniel Stelzer.

The Lab is a room. "You have a strange urge to [link]jump[end link]."

Additional information :

If you click the link, the "jump" command is not added to the Skein.

I don't know how the Skein is implemented, but it may be a problem of the command not being echoed to the correct output stream.

The extension used in the minimal source text is available at https://github.com/i7/extensions/blob/master/Daniel%20Stelzer/Inline%20Hyperlinks.i7x
(the problem occurs with any commands inserted through Glulx Entry Points, but I couldn't think of a simple way to show that).

imported from: [Mantis 1409] Skein does not record Glulx replacement commands
  • status: Closed
  • resolution: Resolved
  • resolved: 2022-04-07T04:57:57+10:00
  • imported: 2022/01/10
curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by graham :
I'm closing this in spite of its sensibleness. It's a good point and we will indeed need to think about how the skein will work with more general input methods, which is what this comes down to, but it's not for the moment a bug in core Inform.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by zarf :
Possibly tricky. It is possible to record all Glk activity to a linear stream (the remglk library is a proof of concept) but the skein may not be designed to handle this.

(Output streams are the wrong level to think about this. Each output stream is Glk activity; a fully Glk-enabled skein could conceivably validate output on all streams at once.)