improved function to dump identifiers for all gadgets on current screen
[rocksndiamonds.git] / src / libgame / gadgets.c
index c793ce13c599ecc2adb7050d98fcf9f7165d9796..244db6ea8852b4a4df027f3ffbc95848b635210d 100644 (file)
@@ -2278,11 +2278,38 @@ void DumpGadgetIdentifiers()
 {
   struct GadgetInfo *gi;
 
-  printf("Gadgets on current screen (any prefix 'gfx.' can be omitted):\n");
+  Print("Gadgets on current screen:\n");
 
   for (gi = gadget_list_first_entry; gi != NULL; gi = gi->next)
+  {
     if (gi->mapped && gi->image_id != -1)
-      printf("- '%s'\n", getTokenFromImageID(gi->image_id));
+    {
+      char *token = getTokenFromImageID(gi->image_id);
+      char *prefix = "gfx.";
+
+      if (strPrefix(token, prefix))
+       token = &token[strlen(prefix)];
+
+      Print("- '%s'\n", token);
+    }
+  }
+
+  Print("Done.\n");
+}
+
+boolean DoGadgetAction(int image_id)
+{
+  struct GadgetInfo *gi;
+
+  for (gi = gadget_list_first_entry; gi != NULL; gi = gi->next)
+  {
+    if (gi->mapped && gi->image_id == image_id)
+    {
+      gi->callback_action(gi);
+
+      return TRUE;
+    }
+  }
 
-  printf("Done.\n");
+  return FALSE;
 }