fixed bug with deriving game data directory from default 'setup.conf'
[rocksndiamonds.git] / src / main.c
index 68af54ec699bef386cd378c70e5ee7a73490e07d..75818dfc67d0fad777102152de3d377e7b2edbb0 100644 (file)
@@ -7305,6 +7305,7 @@ struct ElementActionInfo element_action_info[NUM_ACTIONS + 1 + 1] =
   { ".eating",                 ACTION_EATING,                  FALSE   },
   { ".twinkling",              ACTION_TWINKLING,               FALSE   },
   { ".splashing",              ACTION_SPLASHING,               FALSE   },
+  { ".hitting",                        ACTION_HITTING,                 FALSE   },
   { ".page[1]",                        ACTION_PAGE_1,                  FALSE   },
   { ".page[2]",                        ACTION_PAGE_2,                  FALSE   },
   { ".page[3]",                        ACTION_PAGE_3,                  FALSE   },
@@ -7687,10 +7688,14 @@ static void InitProgramConfig(char *command_filename)
   if (fileExists(config_filename))
   {
     // if program config file exists, derive Unix user data directory from it
-    userdata_basename = getBaseName(config_filename);
+    // (but only if the program config file is not generic "setup.conf" file)
+    if (!strEqual(getBaseNamePtr(config_filename), SETUP_FILENAME))
+    {
+      userdata_basename = getBaseName(config_filename);
 
-    if (strSuffix(userdata_basename, ".conf"))
-      userdata_basename[strlen(userdata_basename) - 5] = '\0';
+      if (strSuffix(userdata_basename, ".conf"))
+       userdata_basename[strlen(userdata_basename) - 5] = '\0';
+    }
 
     LoadSetupFromFilename(config_filename);
   }