diff --git a/tools/src/asset_processor/CMakeLists.txt b/tools/src/asset_processor/CMakeLists.txt index 387b4ab5..4709cd52 100644 --- a/tools/src/asset_processor/CMakeLists.txt +++ b/tools/src/asset_processor/CMakeLists.txt @@ -3,6 +3,6 @@ file(GLOB_RECURSE sources *.cpp) add_executable(asset_processor ${sources}) target_include_directories(asset_processor PRIVATE .) target_link_libraries(asset_processor PRIVATE project_settings) -target_link_libraries(asset_processor PRIVATE fmt::fmt nlohmann_json::nlohmann_json filesystem) +target_link_libraries(asset_processor PRIVATE fmt::fmt nlohmann_json::nlohmann_json filesystem util) install(TARGETS asset_processor RUNTIME DESTINATION bin) diff --git a/tools/src/asset_processor/assets/asset.cpp b/tools/src/asset_processor/assets/asset.cpp index d75f50b9..ff81e810 100644 --- a/tools/src/asset_processor/assets/asset.cpp +++ b/tools/src/asset_processor/assets/asset.cpp @@ -1,11 +1,7 @@ #include "asset.h" -#include +#include void BaseAsset::extractBinary(const std::vector& baserom) { - auto first = baserom.begin() + start; - auto last = baserom.begin() + start + size; - std::vector data(first, last); - std::fstream file(path, std::ios::out | std::ios::binary); - file.write(&data[0], static_cast(data.size())); - file.close(); -} \ No newline at end of file + auto file = util::open_file(path.string(), "w"); + std::fwrite(baserom.data() + start, 1, static_cast(size), file.get()); +} diff --git a/tools/src/asset_processor/assets/midi.cpp b/tools/src/asset_processor/assets/midi.cpp index 1a3f1852..1c383877 100644 --- a/tools/src/asset_processor/assets/midi.cpp +++ b/tools/src/asset_processor/assets/midi.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -32,21 +33,13 @@ void MidiAsset::extractBinary(const std::vector& baserom) { // Extract tracks { - auto first = baserom.begin() + start; - auto last = baserom.begin() + start + headerOffset; - std::vector data(first, last); - std::fstream file(tracksPath, std::ios::out | std::ios::binary); - file.write(&data[0], static_cast(data.size())); - file.close(); + auto file = util::open_file(tracksPath.string(), "w"); + std::fwrite(baserom.data() + start, 1, static_cast(headerOffset), file.get()); } // Extract header { - auto first = baserom.begin() + start + headerOffset; - auto last = baserom.begin() + start + size; - std::vector data(first, last); - std::fstream file(headerPath, std::ios::out | std::ios::binary); - file.write(&data[0], static_cast(data.size())); - file.close(); + auto file = util::open_file(headerPath.string(), "w"); + std::fwrite(baserom.data() + start + headerOffset, 1, static_cast(size - headerOffset), file.get()); } // Create dummy .s file.