housekeeping

This commit is contained in:
scawful
2023-03-29 00:16:57 -05:00
parent 94a61a13ac
commit 3abfaf3336
2 changed files with 36 additions and 18 deletions

View File

@@ -82,18 +82,7 @@ class OverworldEditor {
bool selected_tile_loaded_ = false; bool selected_tile_loaded_ = false;
bool update_selected_tile_ = true; bool update_selected_tile_ = true;
ImGuiTableFlags toolset_table_flags = ImGuiTableFlags_SizingFixedFit;
ImGuiTableFlags ow_map_flags = ImGuiTableFlags_Borders;
ImGuiTableFlags ow_edit_flags = ImGuiTableFlags_Reorderable |
ImGuiTableFlags_Resizable |
ImGuiTableFlags_SizingStretchSame;
Bytes selected_tile_data_; Bytes selected_tile_data_;
std::unordered_map<int, gfx::Bitmap> graphics_bin_;
std::unordered_map<int, gfx::Bitmap> current_graphics_set_;
std::unordered_map<int, gfx::Bitmap> maps_bmp_;
std::unordered_map<int, gfx::Bitmap> sprite_previews_;
std::vector<Bytes> tile16_individual_data_; std::vector<Bytes> tile16_individual_data_;
std::vector<gfx::Bitmap> tile16_individual_; std::vector<gfx::Bitmap> tile16_individual_;
@@ -101,16 +90,27 @@ class OverworldEditor {
PaletteEditor palette_editor_; PaletteEditor palette_editor_;
zelda3::Overworld overworld_; zelda3::Overworld overworld_;
gui::Canvas ow_map_canvas_;
gui::Canvas current_gfx_canvas_;
gui::Canvas blockset_canvas_;
gui::Canvas graphics_bin_canvas_;
gfx::SNESPalette palette_; gfx::SNESPalette palette_;
gfx::Bitmap selected_tile_bmp_; gfx::Bitmap selected_tile_bmp_;
gfx::Bitmap tile16_blockset_bmp_; gfx::Bitmap tile16_blockset_bmp_;
gfx::Bitmap current_gfx_bmp_; gfx::Bitmap current_gfx_bmp_;
gfx::Bitmap all_gfx_bmp; gfx::Bitmap all_gfx_bmp;
gui::Canvas ow_map_canvas_; gfx::BitmapTable maps_bmp_;
gui::Canvas current_gfx_canvas_; gfx::BitmapTable graphics_bin_;
gui::Canvas blockset_canvas_; gfx::BitmapTable current_graphics_set_;
gui::Canvas graphics_bin_canvas_; gfx::BitmapTable sprite_previews_;
ImGuiTableFlags toolset_table_flags = ImGuiTableFlags_SizingFixedFit;
ImGuiTableFlags ow_map_flags = ImGuiTableFlags_Borders;
ImGuiTableFlags ow_edit_flags = ImGuiTableFlags_Reorderable |
ImGuiTableFlags_Resizable |
ImGuiTableFlags_SizingStretchSame;
}; };
} // namespace editor } // namespace editor
} // namespace app } // namespace app

View File

@@ -484,6 +484,8 @@ absl::StatusOr<Bytes> ROM::CompressOverworld(const int pos, const int length) {
return Compress(pos, length, kNintendoMode1); return Compress(pos, length, kNintendoMode1);
} }
// ============================================================================
absl::StatusOr<Bytes> ROM::Decompress(int offset, int size, int mode) { absl::StatusOr<Bytes> ROM::Decompress(int offset, int size, int mode) {
Bytes buffer(size, 0); Bytes buffer(size, 0);
uint length = 0; uint length = 0;
@@ -577,6 +579,8 @@ absl::StatusOr<Bytes> ROM::DecompressOverworld(int pos, int size) {
return Decompress(pos, size, kNintendoMode1); return Decompress(pos, size, kNintendoMode1);
} }
// ============================================================================
absl::StatusOr<Bytes> ROM::Load2bppGraphics() { absl::StatusOr<Bytes> ROM::Load2bppGraphics() {
Bytes sheet; Bytes sheet;
const uint8_t sheets[] = {113, 114, 218, 219, 220, 221}; const uint8_t sheets[] = {113, 114, 218, 219, 220, 221};
@@ -636,6 +640,8 @@ absl::Status ROM::LoadAllGraphicsData() {
return absl::OkStatus(); return absl::OkStatus();
} }
// ============================================================================
absl::Status ROM::LoadFromFile(const absl::string_view& filename) { absl::Status ROM::LoadFromFile(const absl::string_view& filename) {
filename_ = filename; filename_ = filename;
std::ifstream file(filename.data(), std::ios::binary); std::ifstream file(filename.data(), std::ios::binary);
@@ -661,6 +667,8 @@ absl::Status ROM::LoadFromFile(const absl::string_view& filename) {
return absl::OkStatus(); return absl::OkStatus();
} }
// ============================================================================
absl::Status ROM::LoadFromPointer(uchar* data, size_t length) { absl::Status ROM::LoadFromPointer(uchar* data, size_t length) {
if (!data) if (!data)
return absl::InvalidArgumentError( return absl::InvalidArgumentError(
@@ -671,6 +679,8 @@ absl::Status ROM::LoadFromPointer(uchar* data, size_t length) {
return absl::OkStatus(); return absl::OkStatus();
} }
// ============================================================================
absl::Status ROM::LoadFromBytes(const Bytes& data) { absl::Status ROM::LoadFromBytes(const Bytes& data) {
if (data.empty()) { if (data.empty()) {
return absl::InvalidArgumentError( return absl::InvalidArgumentError(
@@ -680,6 +690,8 @@ absl::Status ROM::LoadFromBytes(const Bytes& data) {
return absl::OkStatus(); return absl::OkStatus();
} }
// ============================================================================
absl::Status ROM::SaveToFile() { absl::Status ROM::SaveToFile() {
std::fstream file(filename_.data(), std::ios::binary | std::ios::out); std::fstream file(filename_.data(), std::ios::binary | std::ios::out);
if (!file.is_open()) { if (!file.is_open()) {
@@ -692,9 +704,7 @@ absl::Status ROM::SaveToFile() {
return absl::OkStatus(); return absl::OkStatus();
} }
void ROM::RenderBitmap(gfx::Bitmap* bitmap) const { // ============================================================================
bitmap->CreateTexture(renderer_);
}
gfx::SNESColor ROM::ReadColor(int offset) { gfx::SNESColor ROM::ReadColor(int offset) {
short color = toint16(offset); short color = toint16(offset);
@@ -706,6 +716,8 @@ gfx::SNESColor ROM::ReadColor(int offset) {
return snes_color; return snes_color;
} }
// ============================================================================
gfx::SNESPalette ROM::ReadPalette(int offset, int num_colors) { gfx::SNESPalette ROM::ReadPalette(int offset, int num_colors) {
int color_offset = 0; int color_offset = 0;
std::vector<gfx::SNESColor> colors(num_colors); std::vector<gfx::SNESColor> colors(num_colors);
@@ -732,6 +744,8 @@ void ROM::WriteShort(int addr, int value) {
rom_data_[addr + 1] = (uchar)((value >> 8) & 0xFF); rom_data_[addr + 1] = (uchar)((value >> 8) & 0xFF);
} }
// ============================================================================
void ROM::LoadAllPalettes() { void ROM::LoadAllPalettes() {
// 35 colors each, 7x5 (0,2 on grid) // 35 colors each, 7x5 (0,2 on grid)
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
@@ -802,6 +816,8 @@ void ROM::LoadAllPalettes() {
} }
} }
// ============================================================================
absl::Status ROM::ApplyAssembly(const absl::string_view& filename, absl::Status ROM::ApplyAssembly(const absl::string_view& filename,
size_t patch_size) { size_t patch_size) {
int count = 0; int count = 0;
@@ -815,6 +831,8 @@ absl::Status ROM::ApplyAssembly(const absl::string_view& filename,
return absl::OkStatus(); return absl::OkStatus();
} }
// ============================================================================
// TODO(scawful): Test me! // TODO(scawful): Test me!
absl::Status ROM::PatchOverworldMosaic( absl::Status ROM::PatchOverworldMosaic(
char mosaic_tiles[core::kNumOverworldMaps], int routine_offset) { char mosaic_tiles[core::kNumOverworldMaps], int routine_offset) {