Fluid: Fix for relative cache paths
Relative paths in the cache are no longer converted into absolute paths automatically.
This commit is contained in:
@@ -330,22 +330,22 @@ void BKE_fluid_cache_free(FluidDomainSettings *mds, Object *ob, int cache_map)
|
||||
{
|
||||
char temp_dir[FILE_MAX];
|
||||
int flags = mds->cache_flag;
|
||||
|
||||
/* Ensure cache directory is not relative */
|
||||
const char *relbase = modifier_path_relbase_from_global(ob);
|
||||
BLI_path_abs(mds->cache_directory, relbase);
|
||||
|
||||
if (cache_map & FLUID_DOMAIN_OUTDATED_DATA) {
|
||||
flags &= ~(FLUID_DOMAIN_BAKING_DATA | FLUID_DOMAIN_BAKED_DATA | FLUID_DOMAIN_OUTDATED_DATA);
|
||||
BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_CONFIG, NULL);
|
||||
BLI_path_abs(temp_dir, relbase);
|
||||
if (BLI_exists(temp_dir)) {
|
||||
BLI_delete(temp_dir, true, true);
|
||||
}
|
||||
BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_DATA, NULL);
|
||||
BLI_path_abs(temp_dir, relbase);
|
||||
if (BLI_exists(temp_dir)) {
|
||||
BLI_delete(temp_dir, true, true);
|
||||
}
|
||||
BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, NULL);
|
||||
BLI_path_abs(temp_dir, relbase);
|
||||
if (BLI_exists(temp_dir)) {
|
||||
BLI_delete(temp_dir, true, true);
|
||||
}
|
||||
@@ -354,6 +354,7 @@ void BKE_fluid_cache_free(FluidDomainSettings *mds, Object *ob, int cache_map)
|
||||
if (cache_map & FLUID_DOMAIN_OUTDATED_NOISE) {
|
||||
flags &= ~(FLUID_DOMAIN_BAKING_NOISE | FLUID_DOMAIN_BAKED_NOISE | FLUID_DOMAIN_OUTDATED_NOISE);
|
||||
BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_NOISE, NULL);
|
||||
BLI_path_abs(temp_dir, relbase);
|
||||
if (BLI_exists(temp_dir)) {
|
||||
BLI_delete(temp_dir, true, true);
|
||||
}
|
||||
@@ -362,6 +363,7 @@ void BKE_fluid_cache_free(FluidDomainSettings *mds, Object *ob, int cache_map)
|
||||
if (cache_map & FLUID_DOMAIN_OUTDATED_MESH) {
|
||||
flags &= ~(FLUID_DOMAIN_BAKING_MESH | FLUID_DOMAIN_BAKED_MESH | FLUID_DOMAIN_OUTDATED_MESH);
|
||||
BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_MESH, NULL);
|
||||
BLI_path_abs(temp_dir, relbase);
|
||||
if (BLI_exists(temp_dir)) {
|
||||
BLI_delete(temp_dir, true, true);
|
||||
}
|
||||
@@ -372,6 +374,7 @@ void BKE_fluid_cache_free(FluidDomainSettings *mds, Object *ob, int cache_map)
|
||||
FLUID_DOMAIN_OUTDATED_PARTICLES);
|
||||
BLI_path_join(
|
||||
temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_PARTICLES, NULL);
|
||||
BLI_path_abs(temp_dir, relbase);
|
||||
if (BLI_exists(temp_dir)) {
|
||||
BLI_delete(temp_dir, true, true);
|
||||
}
|
||||
@@ -381,6 +384,7 @@ void BKE_fluid_cache_free(FluidDomainSettings *mds, Object *ob, int cache_map)
|
||||
if (cache_map & FLUID_DOMAIN_OUTDATED_GUIDE) {
|
||||
flags &= ~(FLUID_DOMAIN_BAKING_GUIDE | FLUID_DOMAIN_BAKED_GUIDE | FLUID_DOMAIN_OUTDATED_GUIDE);
|
||||
BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_GUIDE, NULL);
|
||||
BLI_path_abs(temp_dir, relbase);
|
||||
if (BLI_exists(temp_dir)) {
|
||||
BLI_delete(temp_dir, true, true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user