⚠ Cookies ⚠

By continuing to use this site you agree to the use of cookies. Please visit this page to see exactly how we use these.

Projects

AGS EngineSpeechNonblocking Say
MDragonSayBackground is getting a bit archaic, and it hardly matches up to what Say should be able to do.

Is there any reason, other than there only being one speech channel currently, that Say has to be blocking at all? I'd personally think that making Say nonblocking (just like Walk can be) will make games much, much more dynamic, and let characters react to things being said, be it turning around or being shocked, or even saying something in response. And the syntax would remain almost the same:

[code=AGS]cSmugGuy.Say ("&43 And as Ego is a nitwit, we can safely say that he's not going to follow us while we do our evil schemes.", eNoBlock);
Wait (120); //Or however long it takes for SmugGuy to say "And as Ego is a nitwit" and for Ego to take that on board.
cEgo.Say ("Hey!");
while (cSmugGuy.Speaking) Wait (1); //We've run out of stuff to sync up while SmugGuy is talking.
//Continue on. [/code]

This will loosen up the often stilted conversations in AGS games, and let the game designer more tightly control the flow of a conversation. You could even have the nonblocking Say function act more like SayBackground if the character starts moving, cancelling their speech animation so they can walk. If you could resume the speech animation when they stop moving, you've completely modelled the SCUMM speech functions.
© Adventure Game Studio 2024. Page design by loominous and Darth Mandarb; coding by AGA.
Page generated on 07 May 2024 at 04:31:46