From fff3a2d872a9b3916bf9942f3a48744aa7a80179 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Mon, 30 Jan 2023 19:20:29 -0500 Subject: [PATCH] [extractor] create debug_out (#2159) Co-authored-by: Tyler Wilding --- .gitignore | 1 + .../level_extractor/extract_collide_frags.cpp | 7 ++++--- decompiler/level_extractor/extract_level.cpp | 19 +++++++++++-------- decompiler/level_extractor/extract_merc.cpp | 8 ++++---- decompiler/level_extractor/extract_tfrag.cpp | 7 ++++--- decompiler/main.cpp | 4 ---- 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 8b4f0cf09c..0448a6e5ae 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ search-results.json # graphics debug debug_out/ +glb_out/ gfx_dumps/ screenshots/ diff --git a/decompiler/level_extractor/extract_collide_frags.cpp b/decompiler/level_extractor/extract_collide_frags.cpp index 5f7847e9fd..18ae89567b 100644 --- a/decompiler/level_extractor/extract_collide_frags.cpp +++ b/decompiler/level_extractor/extract_collide_frags.cpp @@ -260,9 +260,10 @@ void extract_collide_frags(const level_tools::DrawableTreeCollideFragment* tree, if (dump_level) { auto debug_out = debug_dump_to_obj(all_frags); - file_util::write_text_file( - file_util::get_file_path({"debug_out", fmt::format("collide-{}.obj", debug_name)}), - debug_out); + auto file_path = + file_util::get_file_path({"debug_out", fmt::format("collide-{}.obj", debug_name)}); + file_util::create_dir_if_needed_for_file(file_path); + file_util::write_text_file(file_path, debug_out); } for (auto& item : all_frags) { diff --git a/decompiler/level_extractor/extract_level.cpp b/decompiler/level_extractor/extract_level.cpp index e3676508f3..c75cbefc5c 100644 --- a/decompiler/level_extractor/extract_level.cpp +++ b/decompiler/level_extractor/extract_level.cpp @@ -249,8 +249,9 @@ void extract_common(const ObjectFileDB& db, compressed.data(), compressed.size()); if (dump_levels) { - save_level_foreground_as_gltf(tfrag_level, - file_util::get_jak_project_dir() / "debug_out" / "common.glb"); + auto file_path = file_util::get_jak_project_dir() / "glb_out" / "common.glb"; + file_util::create_dir_if_needed_for_file(file_path); + save_level_foreground_as_gltf(tfrag_level, file_path); } } @@ -286,12 +287,14 @@ void extract_from_level(const ObjectFileDB& db, compressed.data(), compressed.size()); if (dump_level) { - save_level_background_as_gltf(level_data, - file_util::get_jak_project_dir() / "debug_out" / - fmt::format("{}_background.glb", level_data.level_name)); - save_level_foreground_as_gltf(level_data, - file_util::get_jak_project_dir() / "debug_out" / - fmt::format("{}_foreground.glb", level_data.level_name)); + auto back_file_path = file_util::get_jak_project_dir() / "glb_out" / + fmt::format("{}_background.glb", level_data.level_name); + file_util::create_dir_if_needed_for_file(back_file_path); + save_level_background_as_gltf(level_data, back_file_path); + auto fore_file_path = file_util::get_jak_project_dir() / "glb_out" / + fmt::format("{}_foreground.glb", level_data.level_name); + file_util::create_dir_if_needed_for_file(fore_file_path); + save_level_foreground_as_gltf(level_data, fore_file_path); } } diff --git a/decompiler/level_extractor/extract_merc.cpp b/decompiler/level_extractor/extract_merc.cpp index f44ed749f9..de998e195a 100644 --- a/decompiler/level_extractor/extract_merc.cpp +++ b/decompiler/level_extractor/extract_merc.cpp @@ -912,10 +912,10 @@ ConvertedMercEffect convert_merc_effect(const MercEffect& input_effect, } if (dump) { - file_util::write_text_file( - file_util::get_file_path( - {"debug_out/merc", fmt::format("{}_{}.ply", debug_name, effect_idx)}), - debug_dump_to_ply(result.draws, result.vertices)); + auto file_path = file_util::get_file_path( + {"debug_out/merc", fmt::format("{}_{}.ply", debug_name, effect_idx)}); + file_util::create_dir_if_needed_for_file(file_path); + file_util::write_text_file(file_path, debug_dump_to_ply(result.draws, result.vertices)); } return result; diff --git a/decompiler/level_extractor/extract_tfrag.cpp b/decompiler/level_extractor/extract_tfrag.cpp index 7307f0ac11..3b816d8aa8 100644 --- a/decompiler/level_extractor/extract_tfrag.cpp +++ b/decompiler/level_extractor/extract_tfrag.cpp @@ -2121,9 +2121,10 @@ void emulate_tfrags(int geom, if (dump_level) { auto debug_out = debug_dump_to_obj(all_draws); - file_util::write_text_file( - file_util::get_file_path({"debug_out", fmt::format("tfrag-{}.obj", debug_name)}), - debug_out); + auto file_path = + file_util::get_file_path({"debug_out", fmt::format("tfrag-{}.obj", debug_name)}); + file_util::create_dir_if_needed_for_file(file_path); + file_util::write_text_file(file_path, debug_out); } } diff --git a/decompiler/main.cpp b/decompiler/main.cpp index 597add1bd1..86fd5e82f5 100644 --- a/decompiler/main.cpp +++ b/decompiler/main.cpp @@ -119,10 +119,6 @@ int main(int argc, char** argv) { strs.push_back(in_folder / str_name); } - if (config.rip_levels) { - file_util::create_dir_if_needed(file_util::get_jak_project_dir() / "debug_out"); - } - lg::info("[Mem] After config read: {} MB", get_peak_rss() / (1024 * 1024)); // build file database