Daniele Bartolini 8 лет назад
Родитель
Сommit
7f3e746aa9

+ 4 - 1
src/core/filesystem/filesystem_disk.cpp

@@ -369,7 +369,10 @@ void FilesystemDisk::get_absolute_path(const char* path, DynamicString& os_path)
 		return;
 	}
 
-	path::join(os_path, _prefix.c_str(), path);
+	TempAllocator1024 ta;
+	DynamicString str(ta);
+	path::join(str, _prefix.c_str(), path);
+	path::reduce(os_path, str.c_str());
 }
 
 } // namespace crown

+ 5 - 5
src/resource/compile_options.cpp

@@ -131,14 +131,14 @@ void CompileOptions::get_absolute_path(const char* path, DynamicString& abs)
 
 void CompileOptions::get_temporary_path(const char* suffix, DynamicString& abs)
 {
-	_data_filesystem.get_absolute_path(CROWN_TEMP_DIRECTORY, abs);
-
-	TempAllocator64 ta;
+	TempAllocator1024 ta;
+	DynamicString str(ta);
 	DynamicString prefix(ta);
 	guid::to_string(guid::new_guid(), prefix);
 
-	abs += '/';
-	abs += prefix;
+	_data_filesystem.get_absolute_path(CROWN_TEMP_DIRECTORY, str);
+
+	path::join(abs, str.c_str(), prefix.c_str());
 	abs += '.';
 	abs += suffix;
 }

+ 1 - 3
src/resource/data_compiler.cpp

@@ -280,9 +280,7 @@ void DataCompiler::scan()
 	for (; cur != end; ++cur)
 	{
 		DynamicString prefix(default_allocator());
-		prefix += cur->pair.second.c_str();
-		prefix += '/';
-		prefix += cur->pair.first.c_str();
+		path::join(prefix, cur->pair.second.c_str(), cur->pair.first.c_str());
 		_source_fs.set_prefix(prefix.c_str());
 
 		if (_source_fs.exists(CROWN_DATAIGNORE))

+ 1 - 1
src/resource/lua_resource.cpp

@@ -38,7 +38,7 @@ namespace lua_resource_internal
 		DynamicString luasrc(ta);
 		DynamicString luabin(ta);
 		opts.get_absolute_path(opts.source_path(), luasrc);
-		opts.get_temporary_path("lua.bin", luabin);
+		opts.get_temporary_path("lua", luabin);
 
 		StringStream output(ta);
 		const char* argv[] =

+ 1 - 1
src/resource/texture_resource.cpp

@@ -51,7 +51,7 @@ namespace texture_resource_internal
 		DynamicString texsrc(ta);
 		DynamicString texout(ta);
 		opts.get_absolute_path(name.c_str(), texsrc);
-		opts.get_temporary_path("texture.ktx", texout);
+		opts.get_temporary_path("ktx", texout);
 
 		const char* argv[] =
 		{