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:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user