|
|
@ -1,4 +1,4 @@
|
|
|
|
/* $Id: menu.c,v 1.19 2003/05/08 20:36:13 patty21 Exp $ */
|
|
|
|
/* $Id: menu.c,v 1.20 2003/05/10 00:36:03 patty21 Exp $ */
|
|
|
|
/* menu's for the game */
|
|
|
|
/* menu's for the game */
|
|
|
|
|
|
|
|
|
|
|
|
#include <SDL.h>
|
|
|
|
#include <SDL.h>
|
|
|
@ -110,18 +110,18 @@ menu_loop (char *menutitle, _menu menu[], int lastselect)
|
|
|
|
lastentry;
|
|
|
|
lastentry;
|
|
|
|
SDL_Event event;
|
|
|
|
SDL_Event event;
|
|
|
|
Uint8 *keys;
|
|
|
|
Uint8 *keys;
|
|
|
|
int keypressed = 1;
|
|
|
|
int keypressed = 0,
|
|
|
|
|
|
|
|
|
|
|
|
int bx,
|
|
|
|
bx,
|
|
|
|
by;
|
|
|
|
by;
|
|
|
|
|
|
|
|
draw_logo ();
|
|
|
|
draw_logo ();
|
|
|
|
|
|
|
|
draw_menu (menutitle, menu, &bx, &by);
|
|
|
|
draw_menu (menutitle, menu, &bx, &by);
|
|
|
|
for (lastentry = 0; menu[lastentry].index != -1; lastentry++);
|
|
|
|
for (lastentry = 0; menu[lastentry].index != -1; lastentry++);
|
|
|
|
draw_select (menuselect, menu, bx, by);
|
|
|
|
draw_select (menuselect, menu, bx, by);
|
|
|
|
SDL_Flip (gfx.screen);
|
|
|
|
SDL_Flip (gfx.screen);
|
|
|
|
|
|
|
|
keys=SDL_GetKeyState (NULL);
|
|
|
|
while (menuselect != -1 && done == 0) {
|
|
|
|
if (keys[SDLK_RETURN] || keys[SDLK_ESCAPE] ) keypressed=1;
|
|
|
|
|
|
|
|
while (menuselect != -1 && done == 0) {
|
|
|
|
|
|
|
|
|
|
|
|
/* do the network loop if we have to */
|
|
|
|
/* do the network loop if we have to */
|
|
|
|
if (bman.gametype == GT_multi && bman.sock != -1)
|
|
|
|
if (bman.gametype == GT_multi && bman.sock != -1)
|
|
|
@ -133,12 +133,13 @@ menu_loop (char *menutitle, _menu menu[], int lastselect)
|
|
|
|
menuselect = -1;
|
|
|
|
menuselect = -1;
|
|
|
|
bman.state = GS_quit;
|
|
|
|
bman.state = GS_quit;
|
|
|
|
done = 1;
|
|
|
|
done = 1;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* keyboard handling */
|
|
|
|
/* keyboard handling */
|
|
|
|
keys = SDL_GetKeyState (NULL);
|
|
|
|
keys = SDL_GetKeyState (NULL);
|
|
|
|
|
|
|
|
|
|
|
|
if (keys[SDLK_ESCAPE] && event.type == SDL_KEYDOWN) {
|
|
|
|
if (keys[SDLK_ESCAPE] && (!keypressed)) {
|
|
|
|
/* we want to quit */
|
|
|
|
/* we want to quit */
|
|
|
|
keypressed = 1;
|
|
|
|
keypressed = 1;
|
|
|
|
menuselect = -1;
|
|
|
|
menuselect = -1;
|
|
|
@ -167,14 +168,19 @@ menu_loop (char *menutitle, _menu menu[], int lastselect)
|
|
|
|
ds = 1;
|
|
|
|
ds = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (keys[SDLK_RETURN] && (!keypressed)) {
|
|
|
|
if (keys[SDLK_RETURN] && (!keypressed) && (event.type=SDL_KEYDOWN)) {
|
|
|
|
done=1;
|
|
|
|
done=1;
|
|
|
|
keypressed = 1;
|
|
|
|
keypressed = 1;
|
|
|
|
}
|
|
|
|
// d_printf("return pressed - done=1\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
if (event.type == SDL_KEYUP)
|
|
|
|
if (event.type == SDL_KEYUP)
|
|
|
|
keypressed = 0;
|
|
|
|
{ // d_printf("keyup\n");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
keypressed = 0;}
|
|
|
|
else if (event.type == SDL_KEYDOWN)
|
|
|
|
else if (event.type == SDL_KEYDOWN)
|
|
|
|
keypressed = 1;
|
|
|
|
{
|
|
|
|
|
|
|
|
// d_printf("keydown\n");
|
|
|
|
|
|
|
|
keypressed = 1;}
|
|
|
|
|
|
|
|
|
|
|
|
if (ds) {
|
|
|
|
if (ds) {
|
|
|
|
draw_select (menuselect, menu, bx, by);
|
|
|
|
draw_select (menuselect, menu, bx, by);
|
|
|
@ -365,6 +371,29 @@ menu_displaymessage (char *title, char *text)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void menu_clearkeybuff () {
|
|
|
|
|
|
|
|
SDL_Event event;
|
|
|
|
|
|
|
|
Uint8 *keys;
|
|
|
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
SDL_PollEvent (&event);
|
|
|
|
|
|
|
|
keys=SDL_GetKeyState (NULL);
|
|
|
|
|
|
|
|
if (!(keys[SDLK_RETURN])) return;
|
|
|
|
|
|
|
|
for(i=0;i<20;i++) {
|
|
|
|
|
|
|
|
s_delay(25);
|
|
|
|
|
|
|
|
SDL_PollEvent (&event);
|
|
|
|
|
|
|
|
keys=SDL_GetKeyState (NULL);
|
|
|
|
|
|
|
|
if (!(keys[SDLK_RETURN])) return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
menu_displaytext (""," Press Return ", 64, 0, 0);
|
|
|
|
|
|
|
|
while (keys[SDLK_RETURN]) {
|
|
|
|
|
|
|
|
s_delay(25);
|
|
|
|
|
|
|
|
SDL_PollEvent (&event);
|
|
|
|
|
|
|
|
keys=SDL_GetKeyState (NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
/***
|
|
|
|
*** Menu Selection of a file ior a directory
|
|
|
|
*** Menu Selection of a file ior a directory
|
|
|
|
***/
|
|
|
|
***/
|
|
|
|