X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=c1a5cbc18eb15c9abdc60b8a0a5ff36468a71ee2;hb=c64a1336914e69861b3cee04cd03afb3f1a7801a;hp=2120931852677da9e9a8e70cd4692aa341a77b18;hpb=87627cd206d108069804a37f7c7694f672f67479;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 21209318..c1a5cbc1 100644 --- a/src/events.c +++ b/src/events.c @@ -649,12 +649,7 @@ void HandleWindowEvent(WindowEvent *event) int x, y; if (game_status == GAME_MODE_SETUP) - { - // save active virtual buttons (in case of just configuring them) - for (x = 0; x < MAX_GRID_XSIZE; x++) - for (y = 0; y < MAX_GRID_YSIZE; y++) - setup.touch.grid_button[nr][x][y] = overlay.grid_button[x][y]; - } + RedrawSetupScreenAfterScreenRotation(nr); nr = GRID_ACTIVE_NR(); @@ -687,6 +682,7 @@ void HandleFingerEvent_VirtualButtons(FingerEvent *event) int x = event->x * overlay.grid_xsize; int y = event->y * overlay.grid_ysize; int grid_button = overlay.grid_button[x][y]; + int grid_button_action = GET_ACTION_FROM_GRID_BUTTON(grid_button); Key key = (grid_button == CHAR_GRID_BUTTON_LEFT ? setup.input[0].key.left : grid_button == CHAR_GRID_BUTTON_RIGHT ? setup.input[0].key.right : grid_button == CHAR_GRID_BUTTON_UP ? setup.input[0].key.up : @@ -730,6 +726,11 @@ void HandleFingerEvent_VirtualButtons(FingerEvent *event) Error(ERR_DEBUG, "::: key '%s' was '%s' [fingerId: %lld]", getKeyNameFromKey(key), key_status_name, event->fingerId); + if (key_status == KEY_PRESSED) + overlay.grid_button_action |= grid_button_action; + else + overlay.grid_button_action &= ~grid_button_action; + // check if we already know this touch event's finger id for (i = 0; i < NUM_TOUCH_FINGERS; i++) { @@ -1674,6 +1675,11 @@ static void HandleKeysSpecial(Key key) { InsertSolutionTape(); } + else if (is_string_suffix(cheat_input, ":play-solution-tape") || + is_string_suffix(cheat_input, ":pst")) + { + PlaySolutionTape(); + } else if (is_string_suffix(cheat_input, ":reload-graphics") || is_string_suffix(cheat_input, ":rg")) {