From b22da9edb48623a13b0c16f51b86f60e6aa98c94 Mon Sep 17 00:00:00 2001 From: scawful Date: Fri, 11 Oct 2024 10:46:06 -0400 Subject: [PATCH] Refactor Rom class to improve code organization and remove unused dependencies --- src/app/rom.cc | 37 ++++++++++++++++--------------------- src/app/rom.h | 10 ---------- 2 files changed, 16 insertions(+), 31 deletions(-) diff --git a/src/app/rom.cc b/src/app/rom.cc index 83692dd3..194276d7 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -8,20 +8,15 @@ #include #include #include -#include #include -#include -#include #include -#include "absl/container/flat_hash_map.h" #include "absl/status/status.h" #include "absl/status/statusor.h" #include "absl/strings/str_cat.h" #include "absl/strings/string_view.h" #include "app/core/constants.h" #include "app/core/platform/renderer.h" -#include "app/gfx/bitmap.h" #include "app/gfx/compression.h" #include "app/gfx/snes_color.h" #include "app/gfx/snes_palette.h" @@ -35,7 +30,7 @@ constexpr int Uncompressed3BPPSize = 0x0600; constexpr int kEntranceGfxGroup = 0x5D97; namespace { -int GetGraphicsAddress(const uchar* data, uint8_t addr, uint32_t ptr1, +int GetGraphicsAddress(const uchar *data, uint8_t addr, uint32_t ptr1, uint32_t ptr2, uint32_t ptr3) { return core::SnesToPc(core::AddressFromBytes( data[ptr1 + addr], data[ptr2 + addr], data[ptr3 + addr])); @@ -46,7 +41,7 @@ absl::StatusOr> Rom::Load2BppGraphics() { std::vector sheet; const uint8_t sheets[] = {113, 114, 218, 219, 220, 221}; - for (const auto& sheet_id : sheets) { + for (const auto &sheet_id : sheets) { auto offset = GetGraphicsAddress(data(), sheet_id, version_constants().kOverworldGfxPtr1, version_constants().kOverworldGfxPtr2, @@ -54,7 +49,7 @@ absl::StatusOr> Rom::Load2BppGraphics() { ASSIGN_OR_RETURN(auto decomp_sheet, gfx::lc_lz2::DecompressV2(data(), offset)) auto converted_sheet = gfx::SnesTo8bppSheet(decomp_sheet, 2); - for (const auto& each_pixel : converted_sheet) { + for (const auto &each_pixel : converted_sheet) { sheet.push_back(each_pixel); } } @@ -139,7 +134,7 @@ absl::Status Rom::LoadAllGraphicsData(bool defer_render) { return absl::OkStatus(); } -absl::Status Rom::LoadFromFile(const std::string& filename, bool z3_load) { +absl::Status Rom::LoadFromFile(const std::string &filename, bool z3_load) { if (filename.empty()) { return absl::InvalidArgumentError( "Could not load ROM: parameter `filename` is empty."); @@ -157,7 +152,7 @@ absl::Status Rom::LoadFromFile(const std::string& filename, bool z3_load) { // Get file size and resize rom_data_ try { size_ = std::filesystem::file_size(filename_); - } catch (const std::filesystem::filesystem_error& e) { + } catch (const std::filesystem::filesystem_error &e) { // Try to get the file size from the open file stream file.seekg(0, std::ios::end); if (!file) { @@ -169,7 +164,7 @@ absl::Status Rom::LoadFromFile(const std::string& filename, bool z3_load) { rom_data_.resize(size_); // Read file into rom_data_ - file.read(reinterpret_cast(rom_data_.data()), size_); + file.read(reinterpret_cast(rom_data_.data()), size_); // Close file file.close(); @@ -188,7 +183,7 @@ absl::Status Rom::LoadFromFile(const std::string& filename, bool z3_load) { return absl::OkStatus(); } -absl::Status Rom::LoadFromPointer(uchar* data, size_t length, bool z3_load) { +absl::Status Rom::LoadFromPointer(uchar *data, size_t length, bool z3_load) { if (!data || length == 0) return absl::InvalidArgumentError( "Could not load ROM: parameter `data` is empty."); @@ -212,8 +207,8 @@ absl::Status Rom::LoadZelda3() { constexpr size_t kHeaderSize = 0x200; // 512 bytes if (size_ % kBaseRomSize == kHeaderSize) { auto header = - std::vector(rom_data_.begin(), rom_data_.begin() + 0x200); - rom_data_.erase(rom_data_.begin(), rom_data_.begin() + 0x200); + std::vector(rom_data_.begin(), rom_data_.begin() + kHeaderSize); + rom_data_.erase(rom_data_.begin(), rom_data_.begin() + kHeaderSize); size_ -= 0x200; } @@ -240,7 +235,7 @@ absl::Status Rom::LoadZelda3() { return absl::OkStatus(); } -absl::Status Rom::LoadFromBytes(const std::vector& data) { +absl::Status Rom::LoadFromBytes(const std::vector &data) { if (data.empty()) { return absl::InvalidArgumentError( "Could not load ROM: parameter `data` is empty."); @@ -282,7 +277,7 @@ absl::Status Rom::SaveToFile(bool backup, bool save_new, std::string filename) { try { std::filesystem::copy(filename_, backup_filename, std::filesystem::copy_options::overwrite_existing); - } catch (const std::filesystem::filesystem_error& e) { + } catch (const std::filesystem::filesystem_error &e) { non_firing_status = absl::InternalError(absl::StrCat( "Could not create backup file: ", backup_filename, " - ", e.what())); } @@ -330,9 +325,9 @@ absl::Status Rom::SaveToFile(bool backup, bool save_new, std::string filename) { // Save the data to the file try { file.write( - static_cast(static_cast(rom_data_.data())), + static_cast(static_cast(rom_data_.data())), rom_data_.size()); - } catch (const std::ofstream::failure& e) { + } catch (const std::ofstream::failure &e) { return absl::InternalError(absl::StrCat( "Error while writing to ROM file: ", filename, " - ", e.what())); } @@ -350,8 +345,8 @@ absl::Status Rom::SaveToFile(bool backup, bool save_new, std::string filename) { return absl::OkStatus(); } -absl::Status Rom::SavePalette(int index, const std::string& group_name, - gfx::SnesPalette& palette) { +absl::Status Rom::SavePalette(int index, const std::string &group_name, + gfx::SnesPalette &palette) { for (size_t j = 0; j < palette.size(); ++j) { gfx::SnesColor color = palette[j]; // If the color is modified, save the color to the ROM @@ -366,7 +361,7 @@ absl::Status Rom::SavePalette(int index, const std::string& group_name, absl::Status Rom::SaveAllPalettes() { RETURN_IF_ERROR( - palette_groups_.for_each([&](gfx::PaletteGroup& group) -> absl::Status { + palette_groups_.for_each([&](gfx::PaletteGroup &group) -> absl::Status { for (size_t i = 0; i < group.size(); ++i) { RETURN_IF_ERROR( SavePalette(i, group.name(), *group.mutable_palette(i))); diff --git a/src/app/rom.h b/src/app/rom.h index 3eeb660b..9b263c31 100644 --- a/src/app/rom.h +++ b/src/app/rom.h @@ -3,36 +3,26 @@ #include -#include -#include #include #include #include #include -#include -#include -#include #include #include #include -#include #include -#include #include #include -#include "absl/container/flat_hash_map.h" #include "absl/status/status.h" #include "absl/status/statusor.h" #include "absl/strings/match.h" -#include "absl/strings/str_cat.h" #include "absl/strings/str_format.h" #include "absl/strings/string_view.h" #include "app/core/common.h" #include "app/core/constants.h" #include "app/core/labeling.h" #include "app/gfx/bitmap.h" -#include "app/gfx/compression.h" #include "app/gfx/snes_palette.h" #include "app/gfx/snes_tile.h"