I have an IFComp project in 6G that I want to keep as z-machine, and putting it to 6L or later would tip it into Glulx.
But I found a bug that appears in 6G but not 6L. It involves rewriting the player’s command when I don’t want Inform to. In the example below, 6G says (your command) then “y” for score, but it gives your command twice for think. 6L gives your command twice for score. So there was a fix between 6G and 6L.
"ITPC" by Andrew Schultz
r1 is a room.
check requesting the score:
say "[the player's command].";
if the player consents, do nothing;
say "[the player's command].";
the block thinking rule is not listed in any rulebook.
check thinking:
let X be indexed text;
now X is the player's command;
say "[the player's command].";
if the player consents, do nothing;
change the text of the player's command to X;
say "[the player's command].";
This is an acceptable work-around, but I suspect there’s I6 code that could be fixed so things would be less tangled.
This is a bit above my pay-grade to fix with 3 weeks before IFComp, especially since I have a workaround so it’s not necessary. But I wanted to see if anyone knew offhand “Oh, yeah, that code fix would have to be in function X…”
Also, how would I research this in the future? AFAIK the bug-tracker for Inform 7 before 6L is gone. If I’m wrong, and it’s somewhere, that’d be great, as I could probably just look through the fixed bugs and see which applied to the player’s command and see what code changed, then include I6 code in my story file.
Beyond that, though, I’m still very bad at debugging I6 code. I’ve had cases where I was able to scratch the surface and patch a fix, but beyond that, I have trouble. This feels like a question I may’ve asked before (I hope not,) but any pointers of debugger code beyond RULES and RULES ALL would be a huge help.
Thanks for any and all help on this.