From 206a1a69350fec7f3b655bf927fb0f3033671f0d Mon Sep 17 00:00:00 2001 From: scawful Date: Thu, 15 May 2025 22:47:34 -0400 Subject: [PATCH] Refactor ROM saving process to utilize SaveSettings struct - Updated yaze_save_rom and Backup command to use the new SaveSettings struct for improved clarity and maintainability. - Adjusted SaveToFile calls in Tile16Transfer to align with the new structured settings approach. - Enhanced parameter management for ROM saving operations across multiple components. --- src/cli/handlers/tile16_transfer.cc | 4 ++-- src/cli/z3ed.h | 8 +++++--- src/yaze.cc | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/cli/handlers/tile16_transfer.cc b/src/cli/handlers/tile16_transfer.cc index f4c67694..2193c8a3 100644 --- a/src/cli/handlers/tile16_transfer.cc +++ b/src/cli/handlers/tile16_transfer.cc @@ -72,8 +72,8 @@ absl::Status Tile16Transfer::Run(const std::vector& arg_vec) { } } - RETURN_IF_ERROR( - dest_rom.SaveToFile(/*backup=*/true, /*save_new=*/false, arg_vec[1])) + RETURN_IF_ERROR(dest_rom.SaveToFile(yaze::Rom::SaveSettings{ + .backup = true, .save_new = false, .filename = arg_vec[1]})) std::cout << "Successfully transferred tile16" << std::endl; diff --git a/src/cli/z3ed.h b/src/cli/z3ed.h index 4f401d3c..ebb6a501 100644 --- a/src/cli/z3ed.h +++ b/src/cli/z3ed.h @@ -11,6 +11,7 @@ #include "absl/status/status.h" #include "app/rom.h" +#include "app/snes.h" #include "util/macro.h" namespace yaze { @@ -60,12 +61,13 @@ class Backup : public CommandHandler { public: absl::Status Run(const std::vector& arg_vec) override { RETURN_IF_ERROR(rom_.LoadFromFile(arg_vec[0])) + Rom::SaveSettings settings; + settings.backup = true; if (arg_vec.size() == 2) { // Optional filename added - RETURN_IF_ERROR(rom_.SaveToFile(/*backup=*/true, false, arg_vec[1])) - } else { - RETURN_IF_ERROR(rom_.SaveToFile(/*backup=*/true)) + settings.filename = arg_vec[1]; } + RETURN_IF_ERROR(rom_.SaveToFile(settings)) return absl::OkStatus(); } }; diff --git a/src/yaze.cc b/src/yaze.cc index 05d47fd7..79c1fefa 100644 --- a/src/yaze.cc +++ b/src/yaze.cc @@ -112,7 +112,8 @@ void yaze_unload_rom(zelda3_rom *rom) { void yaze_save_rom(zelda3_rom *rom, const char *filename) { if (rom->impl) { yaze::Rom *internal_rom = static_cast(rom->impl); - if (auto status = internal_rom->SaveToFile(false, false, filename); + if (auto status = internal_rom->SaveToFile(yaze::Rom::SaveSettings{ + .backup = true, .save_new = false, .filename = filename}); !status.ok()) { throw std::runtime_error(status.message().data()); }