+ if (key_status == KEY_PRESSED)
+ key_joystick_mapping |= joy;
+ else
+ key_joystick_mapping &= ~joy;
+
+ HandleJoystick();
+ }
+
+ if (game_status != PLAYING)
+ key_joystick_mapping = 0;
+
+ if (key_status == KEY_RELEASED)
+ return;
+
+ if (key == XK_Return && game_status == PLAYING && AllPlayersGone)
+ {
+ CloseDoor(DOOR_CLOSE_1);
+ game_status = MAINMENU;
+ DrawMainMenu();
+ return;
+ }
+
+ /* 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);