gd_struct_set_defaults_from_array(data, gd_caveset_properties, caveset_defaults);
+ if (leveldir_current != NULL)
+ data->levelset_subdir = getStringCopy(leveldir_current->subdir);
+
return data;
}
if (gd_caveset_properties[i].type == GD_TYPE_LONGSTRING)
checked_free(STRUCT_MEMBER(char *, data, gd_caveset_properties[i].offset));
- free(data);
+ checked_free(data->levelset_subdir);
+
+ checked_free(data);
}
// ============================================================================
if (gd_caveset_data)
{
- free(gd_caveset_data);
+ gd_caveset_data_free(gd_caveset_data);
gd_caveset_data = NULL;
}
// always newly create this
// create pseudo cave containing default values
gd_caveset_data = gd_caveset_data_new();
- gd_strcpy(gd_caveset_data->name, getCurrentLevelsetName());
+
+ if (leveldir_current != NULL)
+ gd_strcpy(gd_caveset_data->name, leveldir_current->name);
}
// return number of caves currently in memory.