added event actions (by simulating keyboard input) for global animations
[rocksndiamonds.git] / src / events.c
index 22cfdcd12ebadba2d7084591f3d6ec9bac91ab12..0e899a5b8f6f9836eff53d7117c8bbe8545b5aec 100644 (file)
@@ -1554,16 +1554,16 @@ void HandleButton(int mx, int my, int button, int button_nr)
      strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER));
 #endif
 
-  if (handle_gadgets && HandleGadgets(mx, my, button))
+  if (HandleGlobalAnimClicks(mx, my, button))
   {
     /* do not handle this button event anymore */
-    mx = my = -32;     /* force mouse event to be outside screen tiles */
+    return;            /* force mouse event not to be handled at all */
   }
 
-  if (HandleGlobalAnimClicks(mx, my, button))
+  if (handle_gadgets && HandleGadgets(mx, my, button))
   {
     /* do not handle this button event anymore */
-    return;            /* force mouse event not to be handled at all */
+    mx = my = -32;     /* force mouse event to be outside screen tiles */
   }
 
   if (button_hold && game_status == GAME_MODE_PLAYING && tape.pausing)
@@ -1762,11 +1762,12 @@ static void HandleKeysSpecial(Key key)
   }
 
   /* special key shortcuts for all game modes */
-  if (is_string_suffix(cheat_input, ":dump-gadget-ids") ||
-      is_string_suffix(cheat_input, ":dgi") ||
-      is_string_suffix(cheat_input, ":DGI"))
+  if (is_string_suffix(cheat_input, ":dump-event-actions") ||
+      is_string_suffix(cheat_input, ":dea") ||
+      is_string_suffix(cheat_input, ":DEA"))
   {
     DumpGadgetIdentifiers();
+    DumpScreenIdentifiers();
   }
 }
 
@@ -2495,3 +2496,18 @@ void HandleSpecialGameControllerKeys(Key key, int key_status)
 #endif
 #endif
 }
+
+boolean DoKeysymAction(int keysym)
+{
+  if (keysym < 0)
+  {
+    Key key = (Key)(-keysym);
+
+    HandleKey(key, KEY_PRESSED);
+    HandleKey(key, KEY_RELEASED);
+
+    return TRUE;
+  }
+
+  return FALSE;
+}