diff --git a/src/ObjWriting/Dumping/AssetDumpingContext.cpp b/src/ObjWriting/Dumping/AssetDumpingContext.cpp index 9d6bfd1c..b2984274 100644 --- a/src/ObjWriting/Dumping/AssetDumpingContext.cpp +++ b/src/ObjWriting/Dumping/AssetDumpingContext.cpp @@ -1,6 +1,7 @@ #include "AssetDumpingContext.h" #include +#include #include AssetDumpingContext::AssetDumpingContext() @@ -15,13 +16,21 @@ std::unique_ptr AssetDumpingContext::OpenAssetFile(const std::stri auto assetFileFolder(assetFilePath); assetFileFolder.replace_filename(""); - create_directories(assetFileFolder); + + std::error_code ec; + std::filesystem::create_directories(assetFileFolder, ec); + + if (ec) + { + std::cerr << std::format("Failed to create folder '{}'. Asset '{}' won't be dumped\n", assetFilePath.string(), fileName); + return nullptr; + } auto file = std::make_unique(assetFilePath, std::fstream::out | std::fstream::binary); if (!file->is_open()) { - std::cout << "Failed to open file '" << assetFilePath.string() << "' to dump asset '" << fileName << "'\n"; + std::cerr << std::format("Failed to open file '{}' to dump asset '{}'\n", assetFilePath.string(), fileName); return nullptr; } diff --git a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperRawFile.cpp b/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperRawFile.cpp index 4eca53a6..a1669136 100644 --- a/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperRawFile.cpp +++ b/src/ObjWriting/Game/IW4/AssetDumpers/AssetDumperRawFile.cpp @@ -1,5 +1,6 @@ #include "AssetDumperRawFile.h" +#include #include #include @@ -49,7 +50,7 @@ void AssetDumperRawFile::DumpAsset(AssetDumpingContext& context, XAssetInfoname); + std::cerr << std::format("Inflate failed when attempting to dump rawfile '{}'\n", rawFile->name); inflateEnd(&zs); return; } diff --git a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperRawFile.cpp b/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperRawFile.cpp index d6769f6d..283b8bda 100644 --- a/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperRawFile.cpp +++ b/src/ObjWriting/Game/IW5/AssetDumpers/AssetDumperRawFile.cpp @@ -1,5 +1,6 @@ #include "AssetDumperRawFile.h" +#include #include #include @@ -49,7 +50,7 @@ void AssetDumperRawFile::DumpAsset(AssetDumpingContext& context, XAssetInfoname << "\n"; + std::cerr << std::format("Inflate failed when attempting to dump rawfile '{}'\n", rawFile->name); inflateEnd(&zs); return; }