chrismaltby / gb-studio

A quick and easy to use drag and drop retro game creator for your favourite handheld video game system
https://www.gbstudio.dev
MIT License
8.56k stars 471 forks source link

Dialog: add text commands for pausing text #1626

Open Rebusmind opened 5 days ago

Rebusmind commented 5 days ago

Is your feature request related to a problem? Please describe. Currently the only way to add dramatic pauses (or otherwise control the flow of dialog during one text) is to set the text speed to slow after a word, let the space between words play out slowly and then set it back to normal dialog speed.

Describe the solution you'd like Bloody Lizard suggested this on Discord, but I've been wanting this myself for some time now. Two additional text commands would be great to have:

chrismaltby commented 3 hours ago

Hi @Rebusmind, Good idea!

So the second suggestion was technically possible already with (quite hidden in documentation) GBVM escape sequences https://www.gbstudio.dev/docs/scripting/gbvm/gbvm-operations#escape-sequences

Using the text BEFORE \006\020 AFTER would write before then wait for the A button before continuing, and changing 020 for other values (it's an octal representation of an 8-bit mask) would change which buttons the dialogue would wait for.

But yeah, not very well documented and requires quite a bit more technical knowledge than I'd prefer so I've instead just implemented a new text code typing !wait will let you choose "Wait Until Button Pressed" which then lets you select the buttons

Screenshot 2024-11-07 at 15 33 33 Screenshot 2024-11-07 at 15 33 40 Screenshot 2024-11-07 at 15 34 42

For your first suggestion, we don't have support for waiting for a certain amount of time just yet in GBVM, I'll have a think about that

Rebusmind commented 2 hours ago

Hey Chris, that looks like a great way to implement this. Thanks! I hope you find a way to implement the other suggestion as well, as I would use that quite often (I love dramatic pauses 😆). Timers don't work during dialog, right?