diff options
| author | ilotterytea <iltsu@alright.party> | 2025-02-01 23:35:25 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-02-01 23:35:25 +0500 |
| commit | 38637328ef7627d495a49312e67c9ec363cc450e (patch) | |
| tree | 85bf3f3183ea8a9d26d8e203e10a51d8fc33930a /src | |
| parent | a3ecc099aa0048ad0068a41c3e20cd3c463e09f4 (diff) | |
fix: tiles were only removed on the 1st layer
Diffstat (limited to 'src')
| -rw-r--r-- | src/editor.cpp | 13 | ||||
| -rw-r--r-- | src/floor.cpp | 5 | ||||
| -rw-r--r-- | src/floor.hpp | 2 |
3 files changed, 11 insertions, 9 deletions
diff --git a/src/editor.cpp b/src/editor.cpp index 1929f7f..4fd9dad 100644 --- a/src/editor.cpp +++ b/src/editor.cpp @@ -39,12 +39,13 @@ namespace silly::editor { (ry < mousePosition.y && mousePosition.y < ry + 16)) { sf::Vector2i pos(x, y); - if (sf::Mouse::isButtonPressed(sf::Mouse::Button::Left) && - this->selectedTile.has_value()) { - this->floor.place_tile(this->selectedTile.value(), pos, - this->rotation); - } else if (sf::Mouse::isButtonPressed(sf::Mouse::Button::Right)) { - this->floor.remove_tile(pos); + if (this->selectedTile.has_value()) { + auto tile = this->selectedTile.value(); + if (sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)) { + this->floor.place_tile(tile, pos, this->rotation); + } else if (sf::Mouse::isButtonPressed(sf::Mouse::Button::Right)) { + this->floor.remove_tile(tile->type, pos); + } } } } diff --git a/src/floor.cpp b/src/floor.cpp index 6632b6a..aacf77e 100644 --- a/src/floor.cpp +++ b/src/floor.cpp @@ -57,8 +57,9 @@ namespace silly::editor { layer.tiles.push_back({tile, position, rotation}); } } - void TileFloor::remove_tile(const sf::Vector2i &position) { - TileLayer &layer = this->layers.at(this->activeLayerIndex); + void TileFloor::remove_tile(TilesetTileType type, + const sf::Vector2i &position) { + TileLayer &layer = this->layers.at(type); layer.tiles.resize(std::distance( layer.tiles.begin(), diff --git a/src/floor.hpp b/src/floor.hpp index dcb9fa7..4236166 100644 --- a/src/floor.hpp +++ b/src/floor.hpp @@ -33,7 +33,7 @@ namespace silly::editor { void render(sf::RenderWindow &window) const; void place_tile(std::shared_ptr<TilesetTile> &tile, const sf::Vector2i &position, const float &rotation); - void remove_tile(const sf::Vector2i &position); + void remove_tile(TilesetTileType type, const sf::Vector2i &position); const int get_width() const; const int get_height() const; |
