Chimerror Productions

Quoll Work Thread, 2024-11-16 #3 - 2024-11-16 22:10

Tags: blog gamedev inform7 interactive fiction programming quoll testing text adventures writing

I’m back from getting and eating food and watching some videos as the tests ran. And I began approving things when I noticed a little issue with implicit topics listing…

In the last post, I talked about how the listing suggested topics Action can be invoked implicitly in some cases. In particular, when Ada performs the saying hello to Action, it kicks off the listing suggested topics Action. In that post, I had assumed that my fix would not cause any issues, but when looking at one of my tests to test how responses look when Ada is fully taffificated, I noticed this:

> ? gs-1-ts-puppet-and-glitch: explicit salutations unrevealed
(Playerr Feedback Registered.)

> hi glitch
Taffy passionfruit taff taff, passio taffany taffy fruit passionfruit taffany passionfruit passio passio taffany passionfruit. "Gee, your felt is looking awful dirty, might could do with a spin cycle or five... unless of course you want to stop being bratty and be a good puppet..." Passionfruit passionfruit.

Taff passionfruit taffany taff taffy passionfruit passionfruit fruit taff fruit passionfruit taffany passio taff fruit fruit passionfruit, taffany taffy fruit. "God, fine... Or should that be...? Anyway, if y'all have any questions about getting that grue critter over to the Omega Sigil at (0, 1) and changing the Clubs Bul's state, feel free to ask."

Fruit, passio taffany fruit Taffany taff Taffany! Fruit fruit passio taffy, taffany, PASSIO PASSIONFRUIT passio PASSIONFRUIT, passio passionfruit taffy fruit taffany fruit FRUIT FRUIT passio PASSIONFRUIT. Passio passio taffy, taffy passio taffany passionfruit passio taffany passio fruit taffy passio taff passionfruit.

(Taff passionfruit passio Taffy passionfruit Taffy, Taffy Taffany, taff PASSIONFRUIT, passionfruit passio PASSIONFRUIT; passio passionfruit Passionfruit taffany taffy taffy Passionfruit.)

> bye glitch
>

Obviously, this is a bit hard to read with the taffification, but that last line before the BYE GLITCH command is indeed the topics being listed, just hard to actually see that because of the taffification. But what grabbed my attention is the response to the BYE GLITCH command: namely nothing. Why does this happen?

Well, since it didn’t happen before, I knew it must be a result of how I set conversed-this-turn in my new Rule, which I’ll reproduce here so you don’t have to go to the previous post.

Last Carry Out listing suggested topics (this is the don't continuation nag after listing topics rule):
    now conversed-this-turn is true.

And the Rule that ran here is my fallback Farewell Response Rule for Glitch, which I intend to never let run in game, but it’s there just in case:

Farewell response for Glitch the Skunktaur:
    unless conversed-this-turn is true:
        say "'Bye, Ada! Feel free to come back over if you have any more questions or just want to
        chat[one of]![no line break][or].[no line break][stopping]'[line break]";
        now conversed-this-turn is true.

As you can see, this rule prints nothing if conversed-this-turn is true, so what happened is that listing the topics set conversed-this-turn to true, and then it was still true when the Farewell Response for Glitch the Skunktaur Rule ran as part of the saying goodbye to Action triggered by the BYE GLITCH command.

This, of course, was a surprise to me, as I knew that the Conversation Suggestions by Eric Eve extension I am using reset conversed-this-turn at the end of every turn. In fact, it’s part of the special Every Turn Rules:

Every turn when the current node is not the null-node (this is the node continuation rule):
    if conversed-this-turn is false, follow the node-continuation rules for the current node;
    otherwise now conversed-this-turn is false.

However, the way that the implicit listing suggested topics Action after the saying hello to Action works means my don't continuation nag after listing topics Rule runs after the Every Turn Rules. I could probably look through some of the low-level stuff to figure out when exactly the Every Turn Rules are triggered, but that feels like a lot of effort for something I can’t really control.

So I think I’ll just simply not have my rule run during implicit listing suggested topics Actions, just explicit ones:

Last Carry Out listing suggested topics when topic-request is explicit (this is the don’t continuation nag after
explicitly listing topics rule):
    now conversed-this-turn is true.

Sure, it’s annoying that this means I’ll have to re-run the tests, but finding out about issues like these is exactly why I’ve spent so much time maintaining these tests. Admittedly, I think the fact that I check for the conversed-this-turn being false is a possibly an anti-pattern I fell into because I would see the farewell messages come up at times that didn’t make sense. I haven’t really figured out why I started doing this, even though I think I did find the commit where I started doing this almost exactly 2 years ago in November 2022. I was getting hopeful that I talked about it on Cohost, but it looks like if I did talk about it it was on my fediverse account, and the last archive I have of that ends before the commit.

But anyway, I do want to keep figuring out why exactly I started writing Farewell Responses like that, but regardless, I’ll eventually have to re-run the tests to see if my change to limit setting conversed-this-turn to explicit instances of the listing suggested topics Action works.

Jaycie “chimerror” Mitchell