diff --git a/src/app/editor/graphics/tile16_editor.cc b/src/app/editor/graphics/tile16_editor.cc index 8a15dace..37af4157 100644 --- a/src/app/editor/graphics/tile16_editor.cc +++ b/src/app/editor/graphics/tile16_editor.cc @@ -50,7 +50,7 @@ using ImGui::TableSetupColumn; using ImGui::Text; absl::Status Tile16Editor::InitBlockset( - gfx::Bitmap* tile16_blockset_bmp, gfx::Bitmap current_gfx_bmp, + const gfx::Bitmap& tile16_blockset_bmp, const gfx::Bitmap& current_gfx_bmp, const std::vector& tile16_individual, uint8_t all_tiles_types[0x200]) { all_tiles_types_ = all_tiles_types; @@ -132,7 +132,7 @@ absl::Status Tile16Editor::UpdateBlockset() { { blockset_canvas_.DrawContextMenu(); blockset_canvas_.DrawTileSelector(32); - blockset_canvas_.DrawBitmap(*tile16_blockset_bmp_, 0, map_blockset_loaded_); + blockset_canvas_.DrawBitmap(tile16_blockset_bmp_, 0, map_blockset_loaded_); blockset_canvas_.DrawGrid(); blockset_canvas_.DrawOverlay(); EndChild(); @@ -144,11 +144,11 @@ absl::Status Tile16Editor::UpdateBlockset() { if (notify_tile16.modified()) { current_tile16_ = notify_tile16.get(); - current_tile16_bmp_ = &tile16_individual_[notify_tile16]; + current_tile16_bmp_ = tile16_individual_[notify_tile16]; auto ow_main_pal_group = rom()->palette_group().overworld_main; - RETURN_IF_ERROR(current_tile16_bmp_->ApplyPalette( + RETURN_IF_ERROR(current_tile16_bmp_.ApplyPalette( ow_main_pal_group[current_palette_])); - Renderer::GetInstance().RenderBitmap(current_tile16_bmp_); + Renderer::GetInstance().RenderBitmap(¤t_tile16_bmp_); } } @@ -179,7 +179,7 @@ absl::Status Tile16Editor::DrawToCurrentTile16(ImVec2 click_position) { int pixel_index = (start_position.y + y) * tile16_size + ((start_position.x) + x); int gfx_pixel_index = y * tile8_size + x; - current_tile16_bmp_->WriteToPixel( + current_tile16_bmp_.WriteToPixel( pixel_index, current_gfx_individual_[current_tile8_].data()[gfx_pixel_index]); } @@ -224,14 +224,14 @@ absl::Status Tile16Editor::UpdateTile16Edit() { if (BeginChild("Tile16 Editor Options", ImVec2(GetContentRegionAvail().x, 0x50), true)) { tile16_edit_canvas_.DrawBackground(); - tile16_edit_canvas_.DrawContextMenu(current_tile16_bmp_); - tile16_edit_canvas_.DrawBitmap(*current_tile16_bmp_, 0, 0, 4.0f); + tile16_edit_canvas_.DrawContextMenu(¤t_tile16_bmp_); + tile16_edit_canvas_.DrawBitmap(current_tile16_bmp_, 0, 0, 4.0f); if (!tile8_source_canvas_.points().empty()) { if (tile16_edit_canvas_.DrawTilePainter( current_gfx_individual_[current_tile8_], 16, 2.0f)) { RETURN_IF_ERROR( DrawToCurrentTile16(tile16_edit_canvas_.drawn_tile_position())); - Renderer::GetInstance().UpdateBitmap(current_tile16_bmp_); + Renderer::GetInstance().UpdateBitmap(¤t_tile16_bmp_); } } tile16_edit_canvas_.DrawGrid(); @@ -263,9 +263,9 @@ absl::Status Tile16Editor::DrawTileEditControls() { RETURN_IF_ERROR( current_gfx_bmp_.ApplyPaletteWithTransparent(palette, value)); RETURN_IF_ERROR( - current_tile16_bmp_->ApplyPaletteWithTransparent(palette, value)); + current_tile16_bmp_.ApplyPaletteWithTransparent(palette, value)); Renderer::GetInstance().UpdateBitmap(¤t_gfx_bmp_); - Renderer::GetInstance().UpdateBitmap(current_tile16_bmp_); + Renderer::GetInstance().UpdateBitmap(¤t_tile16_bmp_); } } @@ -391,11 +391,11 @@ absl::Status Tile16Editor::UpdateTransferTileCanvas() { absl::Status Tile16Editor::SetCurrentTile(int id) { current_tile16_ = id; - current_tile16_bmp_ = &tile16_individual_[id]; + current_tile16_bmp_ = tile16_individual_[id]; auto ow_main_pal_group = rom()->palette_group().overworld_main; RETURN_IF_ERROR( - current_tile16_bmp_->ApplyPalette(ow_main_pal_group[current_palette_])); - Renderer::GetInstance().RenderBitmap(current_tile16_bmp_); + current_tile16_bmp_.ApplyPalette(ow_main_pal_group[current_palette_])); + Renderer::GetInstance().RenderBitmap(¤t_tile16_bmp_); return absl::OkStatus(); } diff --git a/src/app/editor/graphics/tile16_editor.h b/src/app/editor/graphics/tile16_editor.h index d3eaaec3..816cb029 100644 --- a/src/app/editor/graphics/tile16_editor.h +++ b/src/app/editor/graphics/tile16_editor.h @@ -1,8 +1,6 @@ #ifndef YAZE_APP_EDITOR_TILE16EDITOR_H #define YAZE_APP_EDITOR_TILE16EDITOR_H -#include "imgui/imgui.h" - #include #include "absl/status/status.h" @@ -18,6 +16,7 @@ #include "app/gui/icons.h" #include "app/rom.h" #include "app/zelda3/overworld/overworld.h" +#include "imgui/imgui.h" namespace yaze { namespace app { @@ -28,8 +27,8 @@ namespace editor { */ class Tile16Editor : public context::GfxContext, public SharedRom { public: - absl::Status InitBlockset(gfx::Bitmap* tile16_blockset_bmp, - gfx::Bitmap current_gfx_bmp, + absl::Status InitBlockset(const gfx::Bitmap& tile16_blockset_bmp, + const gfx::Bitmap& current_gfx_bmp, const std::vector& tile16_individual, uint8_t all_tiles_types[0x200]); @@ -75,12 +74,12 @@ class Tile16Editor : public context::GfxContext, public SharedRom { // Tile16 blockset for selecting the tile to edit gui::Canvas blockset_canvas_{"blocksetCanvas", ImVec2(0x100, 0x4000), gui::CanvasGridSize::k32x32}; - gfx::Bitmap* tile16_blockset_bmp_; + gfx::Bitmap tile16_blockset_bmp_; // Canvas for editing the selected tile gui::Canvas tile16_edit_canvas_{"Tile16EditCanvas", ImVec2(0x40, 0x40), gui::CanvasGridSize::k64x64}; - gfx::Bitmap* current_tile16_bmp_; + gfx::Bitmap current_tile16_bmp_; // Tile8 canvas to get the tile to drawing in the tile16_edit_canvas_ gui::Canvas tile8_source_canvas_{ diff --git a/src/app/editor/overworld/overworld_editor.cc b/src/app/editor/overworld/overworld_editor.cc index 22835e39..d4a4c688 100644 --- a/src/app/editor/overworld/overworld_editor.cc +++ b/src/app/editor/overworld/overworld_editor.cc @@ -93,7 +93,7 @@ absl::Status OverworldEditor::Update() { status_ = absl::OkStatus(); if (rom()->is_loaded() && !all_gfx_loaded_) { RETURN_IF_ERROR(tile16_editor_.InitBlockset( - &tile16_blockset_bmp_, current_gfx_bmp_, tile16_individual_, + tile16_blockset_bmp_, current_gfx_bmp_, tile16_individual_, *overworld_.mutable_all_tiles_types())); gfx_group_editor_.InitBlockset(&tile16_blockset_bmp_); RETURN_IF_ERROR(LoadEntranceTileTypes(*rom())); @@ -649,7 +649,8 @@ void OverworldEditor::DrawOverworldCanvas() { EndChild(); // Handle mouse wheel activity - if (ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows) && ImGui::IsMouseDragging(ImGuiMouseButton_Middle)) { + if (ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows) && + ImGui::IsMouseDragging(ImGuiMouseButton_Middle)) { ImGui::SetScrollX(ImGui::GetScrollX() + ImGui::GetIO().MouseWheelH * 16.0f); ImGui::SetScrollY(ImGui::GetScrollY() + ImGui::GetIO().MouseWheel * 16.0f); }