Question about menus and strife dialog format

Ask about ACS, DECORATE, ZScript, or any other scripting questions here!

Moderator: GZDoom Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)
Zlot1
Posts: 1
Joined: Tue Jun 25, 2024 3:26 pm
Preferred Pronouns: He/Him

Question about menus and strife dialog format

Post by Zlot1 »

Hello. Right now i'm experimenting with udmf mapping and i really enjoy strife's dialogue system as i think it's very convenient for writing interactive stories. However, i'm struggling to make it do everything i want it to do. It has a lot of quirks, and the one that i can't really find a workaround for at the moment is dialogue page pausing the entire game once opened. I suppose all menu classes in gzdoom do this, but it seems like this could be changed, because in doom multiplayer games menus work fine without pausing the game. I also found out that it's possible to write a custom zscript class to override the default conversation one, and i know that there exists a global variable called "paused", but i'm not sure, in terms of code, how it could be used or if it could be used at all to disable pausing.
So, what do you think? Is there be any way to prevent menus and/or dialogues from pausing DOOM?
User avatar
Player701
 
 
Posts: 1707
Joined: Wed May 13, 2009 3:15 am
Graphics Processor: nVidia with Vulkan support

Re: Question about menus and strife dialog format

Post by Player701 »

To make conversations not pause the game, there is a MAPINFO flag aptly named UnFreezeSinglePlayerConversations.

As for other menus, this is a bit trickier, and I'm not sure this is such a good idea, but the easiest solution I see is to override the menu state via EventHandler's UiTick.

Code: Select all

version "4.13"

class MenuNoPauseEventHandler : EventHandler
{
    override void UiTick()
    {
        if (menuactive == Menu.On)
        {
            menuactive = Menu.OnNoPause;
        }
    }
}
The last touch would be to register the event handler in MAPINFO:

Code: Select all

gameinfo
{
    AddEventHandlers = "MenuNoPauseEventHandler"
}
Note that this will affect all menus, including the conversation one.

Return to “Scripting”