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.
This commit is contained in:
scawful
2025-05-15 22:47:34 -04:00
parent 120eb544bf
commit 206a1a6935
3 changed files with 9 additions and 6 deletions

View File

@@ -72,8 +72,8 @@ absl::Status Tile16Transfer::Run(const std::vector<std::string>& arg_vec) {
} }
} }
RETURN_IF_ERROR( RETURN_IF_ERROR(dest_rom.SaveToFile(yaze::Rom::SaveSettings{
dest_rom.SaveToFile(/*backup=*/true, /*save_new=*/false, arg_vec[1])) .backup = true, .save_new = false, .filename = arg_vec[1]}))
std::cout << "Successfully transferred tile16" << std::endl; std::cout << "Successfully transferred tile16" << std::endl;

View File

@@ -11,6 +11,7 @@
#include "absl/status/status.h" #include "absl/status/status.h"
#include "app/rom.h" #include "app/rom.h"
#include "app/snes.h"
#include "util/macro.h" #include "util/macro.h"
namespace yaze { namespace yaze {
@@ -60,12 +61,13 @@ class Backup : public CommandHandler {
public: public:
absl::Status Run(const std::vector<std::string>& arg_vec) override { absl::Status Run(const std::vector<std::string>& arg_vec) override {
RETURN_IF_ERROR(rom_.LoadFromFile(arg_vec[0])) RETURN_IF_ERROR(rom_.LoadFromFile(arg_vec[0]))
Rom::SaveSettings settings;
settings.backup = true;
if (arg_vec.size() == 2) { if (arg_vec.size() == 2) {
// Optional filename added // Optional filename added
RETURN_IF_ERROR(rom_.SaveToFile(/*backup=*/true, false, arg_vec[1])) settings.filename = arg_vec[1];
} else {
RETURN_IF_ERROR(rom_.SaveToFile(/*backup=*/true))
} }
RETURN_IF_ERROR(rom_.SaveToFile(settings))
return absl::OkStatus(); return absl::OkStatus();
} }
}; };

View File

@@ -112,7 +112,8 @@ void yaze_unload_rom(zelda3_rom *rom) {
void yaze_save_rom(zelda3_rom *rom, const char *filename) { void yaze_save_rom(zelda3_rom *rom, const char *filename) {
if (rom->impl) { if (rom->impl) {
yaze::Rom *internal_rom = static_cast<yaze::Rom *>(rom->impl); yaze::Rom *internal_rom = static_cast<yaze::Rom *>(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()) { !status.ok()) {
throw std::runtime_error(status.message().data()); throw std::runtime_error(status.message().data());
} }