Hybrid Choices: suppressing page description

Hi all! I’m experimenting with Hybrid Choices v7 as an extension for handling conversation trees. It seems pretty flexible, but I’m having an issue. Suppose I want a dead-end dialogue choice, like in this very simple example:

Freda_hello is a page.
"'Hello!' says Freda."

Freda_howareyou is a page.
"'I'm doing fine, thanks!' says Freda."
The cdesc is "'Hi Freda! How are you?'" It is for Freda_hello. It is a dead-end.

Freda_bye is a page.
"'See you!' says Freda."
The cdesc is "'Goodbye.'" It is for Freda_hello. It is an end-page.

This behaves in the story like so (after hooking Freda_hello up to a “talk to” verb elsewhere in the source):

>talk to freda
“Hello!” says Freda.

  1. “Hi Freda! How are you?”
  2. “Goodbye.”

>1
[“Hi Freda! How are you?”]

“I’m doing fine, thanks!” says Freda.

“Hello!” says Freda.

  1. “Hi Freda! How are you?”
  2. “Goodbye.”

>2
[“Goodbye.”]

“See you!” says Freda.

My issue is with the second instance of Freda saying “hello”, which I’ve bolded. The game reprints the contents of the page Freda_hello when it comes back out of the dead-end page Freda_howareyou. This leads to the introduction dialogue being repeated. I’d like to be able to skip the reprinting in this instance.

Is there a way to suppress printing the description of a page when returning from a dead-end?

Apologies if this is addressed in the extension’s documentation and I’ve missed it, but I can’t spot it if it’s there.

I haven’t used the extension, but could you move the “hello” line to an “after talking to Freda for the first time” rule? Or just make the “hello” dialogue shift to something like “Freda waits for what you’re going to say next” after it first shows up using the [one of]…[stopping] construction?

(Apologies if this isn’t helpful since it’s not actually answering your question, just suggesting workarounds!)

3 Likes

I’d insert an additional “hub” or “menu” page that doesn’t print anything, and which serves as the hub to which the choices link back.

Freda_hello is a page. It flips to Freda_hub.
"'Hello!' says Freda."

Freda_hub is a page.

Freda_howareyou is a page.
"'I'm doing fine, thanks!' says Freda."
The cdesc is "'Hi Freda! How are you?'" It is for Freda_hub. It is a dead-end.

Freda_bye is a page.
"'See you!' says Freda."
The cdesc is "'Goodbye.'" It is for Freda_hub. It is an end-page.

Result:

“Hello!” says Freda.

  1. “Hi Freda! How are you?”
  2. “Goodbye.”

>1
[“Hi Freda! How are you?”]

“I’m doing fine, thanks!” says Freda.

  1. “Hi Freda! How are you?”
  2. “Goodbye.”

>2
[“Goodbye.”]

“See you!” says Freda.

See also “Section: Menus, One-Offs and Dead-Ends” in the extension’s docs.

3 Likes

This works exactly how I want! Thank you! I’d noticed the page flipping action but only took it as being for breaking up long passages - I hadn’t considered using it for printing blank pages.

Mike, your suggestion is pretty good too - I could possibly have “> talk to Freda” link to a “to say freda greeting” phrase which prints the greeting and then activates CYOA mode, rather than having the greeting already within CYOA mode. I suppose that’s more about how I decide to organise my code than about Hybrid Choices itself.

2 Likes