From 2da8a4a126930212b6fe02031647cee2ed4b6141 Mon Sep 17 00:00:00 2001 From: Justin Scofield Date: Wed, 20 Jul 2022 22:13:21 -0400 Subject: [PATCH] ow rom housekeeping --- src/app/editor/overworld_editor.cc | 30 +++++++++++++++++++----------- src/app/rom.cc | 3 +-- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/app/editor/overworld_editor.cc b/src/app/editor/overworld_editor.cc index 36199cef..ece5b183 100644 --- a/src/app/editor/overworld_editor.cc +++ b/src/app/editor/overworld_editor.cc @@ -198,17 +198,25 @@ void OverworldEditor::DrawOverworldCanvas() { overworld_map_canvas_.DrawBackground(); overworld_map_canvas_.UpdateContext(); overworld_map_canvas_.DrawGrid(64.f); - if (overworld_.isLoaded()) { - // overworld_map_canvas_.GetDrawList()->AddImage( - // (void *)overworld_.GetOverworldMap(0).GetBitmap().GetTexture(), - // ImVec2(overworld_map_canvas_.GetZeroPoint().x + 2, - // overworld_map_canvas_.GetZeroPoint().y + 2), - // ImVec2( - // overworld_map_canvas_.GetZeroPoint().x + - // (overworld_.GetOverworldMap(0).GetBitmap().GetWidth() * 2), - // overworld_map_canvas_.GetZeroPoint().y + - // (overworld_.GetOverworldMap(0).GetBitmap().GetHeight() * - // 2))); + if (all_gfx_loaded_) { + static bool tiles_made = false; + static std::vector tiles; + if (!tiles_made) { + tiles = graphics_bin_.at(0).CreateTiles(); + auto renderer = rom_.Renderer(); + for (auto &tile : tiles) { + tile.CreateTexture(renderer); + } + } + + overworld_map_canvas_.GetDrawList()->AddImage( + (void *)tiles[0].GetTexture(), + ImVec2(overworld_map_canvas_.GetZeroPoint().x + 2, + overworld_map_canvas_.GetZeroPoint().y + 2), + ImVec2( + overworld_map_canvas_.GetZeroPoint().x + (tiles[0].GetWidth() * 2), + overworld_map_canvas_.GetZeroPoint().y + + (tiles[0].GetHeight() * 2))); } overworld_map_canvas_.DrawOverlay(); } diff --git a/src/app/rom.cc b/src/app/rom.cc index b1c8b5ac..03386a0d 100644 --- a/src/app/rom.cc +++ b/src/app/rom.cc @@ -58,8 +58,7 @@ void ROM::LoadFromPointer(uchar *data) { current_rom_ = data; } // 127-217 -> compressed 3bpp sprites -> (decompressed each) 0x600 chars // 218-222 -> compressed 2bpp -> (decompressed each) 0x800 chars void ROM::LoadAllGraphicsData() { - int buffer_size = 346624; - auto buffer = new uchar[buffer_size]; + auto buffer = new uchar[346624]; auto data = new uchar[2048]; int buffer_pos = 0;