added setting default filenames for all cloned static graphics
authorHolger Schemel <info@artsoft.org>
Wed, 22 Oct 2014 22:07:32 +0000 (00:07 +0200)
committerHolger Schemel <info@artsoft.org>
Wed, 22 Oct 2014 22:07:32 +0000 (00:07 +0200)
ChangeLog
src/init.c

index cb8b519f6b9c1c16fdf0929d83a1baf10c5e3c09..d98af9f94270166ee6da03a3481fde7c6367b08f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 2014-10-22
        * added warnings when using undefined element and graphic names in
          custom artwork definitions (like ".crumbled_like" or ".clone_from")
+       * added setting default filenames for all cloned graphics in static
+         graphics configuration on startup (to be able to fall back later)
 
 2014-10-20
        * fixed using buttons on main screen with size other than 32x32 pixels
index f431f5b88fe49b818687a01e085aaf6e40d15c87..aea5c31bd576c806c7519a320cd8f7525ab10075 100644 (file)
@@ -4469,6 +4469,33 @@ static void InitGlobal()
                 font_info[i].token_name,
                 int2str(i, 0));
 
+  /* set default filenames for all cloned graphics in static configuration */
+  for (i = 0; image_config[i].token != NULL; i++)
+  {
+    if (strEqual(image_config[i].value, UNDEFINED_FILENAME))
+    {
+      char *token = image_config[i].token;
+      char *token_clone_from = getStringCat2(token, ".clone_from");
+      char *token_cloned = getHashEntry(image_config_hash, token_clone_from);
+
+      if (token_cloned != NULL)
+      {
+       char *value_cloned = getHashEntry(image_config_hash, token_cloned);
+
+       if (value_cloned != NULL)
+       {
+         /* set default filename in static configuration */
+         image_config[i].value = value_cloned;
+
+         /* set default filename in image config hash */
+         setHashEntry(image_config_hash, token, value_cloned);
+       }
+      }
+
+      free(token_clone_from);
+    }
+  }
+
   /* always start with reliable default values (all elements) */
   for (i = 0; i < MAX_NUM_ELEMENTS; i++)
     ActiveElement[i] = i;