added key shortcut to dump identifiers for all gadgets on current screen
authorHolger Schemel <info@artsoft.org>
Fri, 8 Jun 2018 21:35:07 +0000 (23:35 +0200)
committerHolger Schemel <info@artsoft.org>
Sun, 17 Jun 2018 22:02:48 +0000 (00:02 +0200)
src/events.c
src/libgame/gadgets.c
src/libgame/gadgets.h

index 000744c9e177a90e8dff21dcd2f7ffc78ae66ff1..22cfdcd12ebadba2d7084591f3d6ec9bac91ab12 100644 (file)
@@ -1760,6 +1760,14 @@ static void HandleKeysSpecial(Key key)
       DumpBrush_Small();
     }
   }
+
+  /* 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"))
+  {
+    DumpGadgetIdentifiers();
+  }
 }
 
 void HandleKeysDebug(Key key)
index cba655f874a89a29d9c31d0001c5a75506ef9088..c793ce13c599ecc2adb7050d98fcf9f7165d9796 100644 (file)
@@ -13,6 +13,7 @@
 #include <string.h>
 
 #include "gadgets.h"
+#include "image.h"
 #include "text.h"
 #include "misc.h"
 
@@ -2272,3 +2273,16 @@ boolean HandleGadgetsKeyInput(Key key)
 
   return TRUE;
 }
+
+void DumpGadgetIdentifiers()
+{
+  struct GadgetInfo *gi;
+
+  printf("Gadgets on current screen (any prefix 'gfx.' can be omitted):\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));
+
+  printf("Done.\n");
+}
index 0fec5b689b1eafd4a2cc5cc126dbf06d410659ae..5e196192270e3e2de4d58f3f0e0938bb3806911a 100644 (file)
@@ -291,4 +291,6 @@ void ClickOnGadget(struct GadgetInfo *, int);
 boolean HandleGadgets(int, int, int);
 boolean HandleGadgetsKeyInput(Key);
 
+void DumpGadgetIdentifiers(void);
+
 #endif /* GADGETS_H */