Adventure Game Studio

AGS Support => Beginners' Technical Questions => Topic started by: TheMagician on Wed 09/02/2005 07:19:52

Title: keypress global function blocked during Quit_GUi? [SOLVED]
Post by: TheMagician on Wed 09/02/2005 07:19:52
Hi everybody.
I made a custom Quit dialog for my game and now I want to script some keyboard interaction for it (for example: hit enter to quit the game.)

I tried using the on_keypress global function but it seems to be blocked while the GUI is active. Is that true or did I do something wrong?
I did

function on_keypress (int keydown) {
if (keydown==555) {
if (IsGUIOn(QUIT)==1) {
Code for the action

Well, it just didn't work.
Right now I have my code in the repeatedly execute like this:

if (IsKeyPressed(555)==1) && (IsGuiOn(QUIT)==1) ...

It works ok, but
Is this the correct way of doing it?

btw: AGS 2.62

Thanks in advance,
Stefan
Title: Re: keypress global function blocked during Quit_GUi?
Post by: Radiant on Wed 09/02/2005 07:58:44
I'm not sure what key '555' refers to, but the enter key is actually key 13. That might help.
But putting it in rep_ex is certainly a suitable alternative.
Title: Re: keypress global function blocked during Quit_GUi?
Post by: Ashen on Wed 09/02/2005 12:06:31
Key presses aren't handled when the game is paused, e.g. by a popup modal GUI, because of the first line of on_key_press:

function on_key_press(int keycode) {
Ã,  if (IsGamePaused() == 1) keycode=0;Ã,  // game paused, so don't react to keypresses
Ã,  //codes for other keys
}


So, assuming your Quit GUI is popup modal and that's the problem, something like:

function on_key_press(int keycode) {
Ã,  if (keycode==13) && (IsGUIOn(QUIT)==1) {
Ã,  Ã,  Code for the action
Ã,  }
Ã,  else if (IsGamePaused() == 1) keycode=0;Ã,  // game paused, so don't react to keypresses
Ã,  //codes for other keys
}

Anything else you wanted to happen when the game was otherwise paused should also go above else if (IsGamePaused() == 1) ....

Also, have you actually created the on_keypress function in your script, or is that just how you've typed it here? (EDIT: I thought it might be, but it doesn't hurt to check these things.) The function on_key_press already exists, so your function wouldn't do anything.
Title: Re: keypress global function blocked during Quit_GUi?
Post by: TheMagician on Wed 09/02/2005 12:10:40
Thanks for your answers!

@Radiant:
I just typed 333 because I didn't know the correct ASCII code for "Enter".
However, in my script I wrote 13.

@Ashen:
QuoteAlso, have you actually created the on_keypress function in your script, or is that just how you've typed it here?

That's just what I typed here. Of course in the game I took the correct function.
However, many thanks for explaining the behaviour of the function! This made everything clear! ... once again (thanks to this great forum!)Ã,  :)