From 934ce6b1e7494ebacc3d83687f7f10d3ff36973b Mon Sep 17 00:00:00 2001 From: scawful Date: Tue, 10 Jan 2023 13:48:12 -0600 Subject: [PATCH] add where tile draw event takes place in ow canvas --- src/app/editor/overworld_editor.cc | 22 +++++++++++++++++++--- src/app/editor/overworld_editor.h | 1 + src/app/zelda3/overworld_map.h | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/app/editor/overworld_editor.cc b/src/app/editor/overworld_editor.cc index f37c78f7..a2ad0fc5 100644 --- a/src/app/editor/overworld_editor.cc +++ b/src/app/editor/overworld_editor.cc @@ -167,6 +167,18 @@ void OverworldEditor::DrawOverworldMaps() { // ---------------------------------------------------------------------------- +void OverworldEditor::DrawOverworldEdits() { + auto mouse_position = ow_map_canvas_.GetCurrentDrawnTilePosition(); + auto canvas_size = ow_map_canvas_.GetCanvasSize(); + int x = mouse_position.x / canvas_size.x; + int y = mouse_position.y / canvas_size.y; + auto index = x + (y * 64); + + std::cout << "==> " << index << std::endl; +} + +// ---------------------------------------------------------------------------- + // Overworld Editor canvas // Allows the user to make changes to the overworld map. void OverworldEditor::DrawOverworldCanvas() { @@ -184,10 +196,14 @@ void OverworldEditor::DrawOverworldCanvas() { if (!blockset_canvas_.Points().empty()) { int x = blockset_canvas_.Points().front().x / 32; int y = blockset_canvas_.Points().front().y / 32; - std::cout << x << " " << y << std::endl; + // std::cout << x << " " << y << std::endl; current_tile16_ = x + (y * 8); - std::cout << current_tile16_ << std::endl; - ow_map_canvas_.DrawTilePainter(tile16_individual_[current_tile16_], 16); + // std::cout << current_tile16_ << std::endl; + if (ow_map_canvas_.DrawTilePainter(tile16_individual_[current_tile16_], + 16)) { + // Update the overworld map. + DrawOverworldEdits(); + } } } ow_map_canvas_.DrawGrid(64.0f); diff --git a/src/app/editor/overworld_editor.h b/src/app/editor/overworld_editor.h index 4c664843..a5150599 100644 --- a/src/app/editor/overworld_editor.h +++ b/src/app/editor/overworld_editor.h @@ -56,6 +56,7 @@ class OverworldEditor { void DrawOverworldEntrances(); void DrawOverworldMaps(); + void DrawOverworldEdits(); void DrawOverworldCanvas(); void DrawTile16Selector(); diff --git a/src/app/zelda3/overworld_map.h b/src/app/zelda3/overworld_map.h index 51d35902..31346689 100644 --- a/src/app/zelda3/overworld_map.h +++ b/src/app/zelda3/overworld_map.h @@ -35,6 +35,7 @@ class OverworldMap { auto SetLargeMap(bool is_set) { large_map_ = is_set; } auto IsLargeMap() const { return large_map_; } auto IsInitialized() const { return initialized_; } + auto Parent() const { return parent_; } private: void LoadAreaInfo();