summaryrefslogtreecommitdiff
path: root/src/tileset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tileset.cpp')
-rw-r--r--src/tileset.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/tileset.cpp b/src/tileset.cpp
index 8651a8f..5e5b47a 100644
--- a/src/tileset.cpp
+++ b/src/tileset.cpp
@@ -1,5 +1,7 @@
#include "tileset.hpp"
+#include <memory>
+
namespace silly::editor {
void Tileset::add_tile(const std::string &path, TilesetTileType type) {
TilesetTile tile;
@@ -11,18 +13,19 @@ namespace silly::editor {
return;
}
- this->tiles.push_back(tile);
+ this->tiles.push_back(std::make_shared<TilesetTile>(tile));
}
void Tileset::remove_tile(const TilesetTile &tile) {
this->tiles.resize(std::distance(
this->tiles.begin(),
- std::remove_if(
- this->tiles.begin(), this->tiles.end(),
- [&tile](const TilesetTile &t) { return t.id == tile.id; })));
+ std::remove_if(this->tiles.begin(), this->tiles.end(),
+ [&tile](const std::shared_ptr<TilesetTile> &t) {
+ return t.get()->id == tile.id;
+ })));
}
- const std::vector<TilesetTile> &Tileset::get_tiles() const {
+ const std::vector<std::shared_ptr<TilesetTile>> &Tileset::get_tiles() const {
return this->tiles;
}
} \ No newline at end of file