X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=a34c1ab9a762e501abbbd947f643497601d67dfd;hb=48542a06103232c408ce6250f5bc2d9add00f233;hp=a336f013d3a5ae35140ad8095734aa216e643a58;hpb=41364660abbcb81a83f5018be3655352ecdf1ac9;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index a336f013..a34c1ab9 100644 --- a/src/events.c +++ b/src/events.c @@ -68,7 +68,8 @@ void EventLoop(void) if (game_status != PLAYING) { XSync(display, FALSE); - Delay(10); + if (!XPending(display)) /* delay only if no pending events */ + Delay(10); } /* refresh window contents from drawing buffer, if needed */ @@ -299,13 +300,15 @@ void HandleFocusEvent(XFocusChangeEvent *event) would be far better) set for each X11 window individually. The effect would be keyboard auto repeat while playing the game (game_status == PLAYING), which is not desired. - To avoid this special case, we just wait 1/50 second before + To avoid this special case, we just wait 1/10 second before processing the 'FocusIn' event. */ - Delay(20); if (game_status == PLAYING) + { + Delay(100); XAutoRepeatOff(display); + } if (old_joystick_status != -1) joystick_status = old_joystick_status; } @@ -334,12 +337,6 @@ void HandleButton(int mx, int my, int button) { old_mx = mx; old_my = my; - - /* - HandleVideoButtons(mx,my, button); - HandleSoundButtons(mx,my, button); - HandleGameButtons(mx,my, button); - */ } HandleGadgets(mx, my, button); @@ -491,16 +488,6 @@ void HandleKey(KeySym key, int key_status) /* allow quick escape to the main menu with the Escape key */ if (key == XK_Escape && game_status != MAINMENU) { - if (game_status == LEVELED) - { - /* draw smaller door */ - XCopyArea(display, pix[PIX_DOOR], drawto, gc, - DOOR_GFX_PAGEX7, 64, - 108, 64, - EX - 4, EY - 12); - redraw_mask |= REDRAW_ALL; - } - CloseDoor(DOOR_CLOSE_1 | DOOR_OPEN_2 | DOOR_NO_DELAY); game_status = MAINMENU; DrawMainMenu(); @@ -543,6 +530,16 @@ void HandleKey(KeySym key, int key_status) HandleSetupInputScreen(0,0, 0,0, MB_MENU_CHOICE); break; + case XK_Page_Up: + if (game_status == CHOOSELEVEL) + HandleChooseLevel(0,0, 0,-SCR_FIELDY, MB_MENU_MARK); + break; + + case XK_Page_Down: + if (game_status == CHOOSELEVEL) + HandleChooseLevel(0,0, 0,SCR_FIELDY, MB_MENU_MARK); + break; + default: break; } @@ -610,7 +607,7 @@ void HandleKey(KeySym key, int key_status) break; #endif -#if 1 +#if 0 case XK_m: if (MoveSpeed == 8) {