X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=61bdf6be9698da0b6186dac9c857380da87e4f21;hb=a3bc2ca4c0acf21291d20b5affed89f149b85862;hp=bb6628964d216db9fb65949b80c36fe00bfb4c4a;hpb=f857fec3082c785b0dd271b6ad1b7642a2ed4e65;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index bb662896..61bdf6be 100644 --- a/src/events.c +++ b/src/events.c @@ -23,11 +23,6 @@ #include "tape.h" #include "network.h" -/* values for key_status */ -#define KEY_NOT_PRESSED FALSE -#define KEY_RELEASED FALSE -#define KEY_PRESSED TRUE - static boolean cursor_inside_playfield = FALSE; static boolean playfield_cursor_set = FALSE; @@ -58,7 +53,8 @@ int FilterMouseMotionEvents(const Event *event) } /* skip mouse motion events without pressed button outside level editor */ - if (button_status == MB_RELEASED && game_status != GAME_MODE_EDITOR) + if (button_status == MB_RELEASED && game_status != GAME_MODE_EDITOR && + game_status != GAME_MODE_PLAYING) return 0; else return 1; @@ -310,7 +306,9 @@ void HandleKeyEvent(KeyEvent *event) int key_status = (event->type==EVENT_KEYPRESS ? KEY_PRESSED : KEY_RELEASED); boolean with_modifiers = (game_status == GAME_MODE_PLAYING ? FALSE : TRUE); Key key = GetEventKey(event, with_modifiers); + Key keymod = (with_modifiers ? GetEventKey(event, FALSE) : key); + HandleKeyModState(keymod, key_status); HandleKey(key, key_status); } @@ -431,6 +429,7 @@ void HandleButton(int mx, int my, int button) printf(" MovPos[%d][%d] == %d\n", x,y, MovPos[x][y]); printf(" MovDir[%d][%d] == %d\n", x,y, MovDir[x][y]); printf(" MovDelay[%d][%d] == %d\n", x,y, MovDelay[x][y]); + printf(" ChangeDelay[%d][%d] == %d\n", x,y, ChangeDelay[x][y]); printf(" GfxElement[%d][%d] == %d\n", x,y, GfxElement[x][y]); printf("\n"); } @@ -625,16 +624,16 @@ void HandleKey(Key key, int key_status) case KSYM_Page_Up: if (game_status == GAME_MODE_LEVELS) - HandleChooseLevel(0,0, 0,-SCR_FIELDY, MB_MENU_MARK); + HandleChooseLevel(0,0, 0, -1 * SCROLL_PAGE, MB_MENU_MARK); else if (game_status == GAME_MODE_SETUP) - HandleSetupScreen(0,0, 0,-SCR_FIELDY, MB_MENU_MARK); + HandleSetupScreen(0,0, 0, -1 * SCROLL_PAGE, MB_MENU_MARK); break; case KSYM_Page_Down: if (game_status == GAME_MODE_LEVELS) - HandleChooseLevel(0,0, 0,SCR_FIELDY, MB_MENU_MARK); + HandleChooseLevel(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK); else if (game_status == GAME_MODE_SETUP) - HandleSetupScreen(0,0, 0,SCR_FIELDY, MB_MENU_MARK); + HandleSetupScreen(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK); break; #ifdef DEBUG @@ -662,11 +661,11 @@ void HandleKey(Key key, int key_status) break; case KSYM_Page_Up: - HandleHallOfFame(0,0, 0,-SCR_FIELDY, MB_MENU_MARK); + HandleHallOfFame(0,0, 0, -1 * SCROLL_PAGE, MB_MENU_MARK); break; case KSYM_Page_Down: - HandleHallOfFame(0,0, 0,SCR_FIELDY, MB_MENU_MARK); + HandleHallOfFame(0,0, 0, +1 * SCROLL_PAGE, MB_MENU_MARK); break; default: