diff --git a/src/app/commands/cmd_sprite_size.cpp b/src/app/commands/cmd_sprite_size.cpp index aabbd99ff..977f3499f 100644 --- a/src/app/commands/cmd_sprite_size.cpp +++ b/src/app/commands/cmd_sprite_size.cpp @@ -125,6 +125,8 @@ protected: auto newTileset = new doc::Tileset(sprite(), newGrid, tileset->size()); doc::tile_index idx = 0; + newTileset->setName(tileset->name()); + newTileset->setUserData(tileset->userData()); for (doc::ImageRef tileImg : *tileset) { if (idx != 0) { doc::ImageRef newTileImg( diff --git a/src/app/util/expand_cel_canvas.cpp b/src/app/util/expand_cel_canvas.cpp index 9ae7f9a35..9ff9ef089 100644 --- a/src/app/util/expand_cel_canvas.cpp +++ b/src/app/util/expand_cel_canvas.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2019-2020 Igara Studio S.A. +// Copyright (C) 2019-2022 Igara Studio S.A. // Copyright (C) 2001-2018 David Capello // // This program is distributed under the terms of @@ -508,9 +508,7 @@ Tileset* ExpandCelCanvas::getDestTileset() const Tileset* srcTileset = static_cast(m_layer)->tileset(); ASSERT(srcTileset); - m_dstTileset.reset(new Tileset(m_sprite, - srcTileset->grid(), - srcTileset->size())); + m_dstTileset.reset(Tileset::MakeCopyWithoutImages(srcTileset)); copySourceTilestToDestTileset(); } return m_dstTileset.get(); diff --git a/src/doc/tileset.cpp b/src/doc/tileset.cpp index a4b586601..6b7ba9d22 100644 --- a/src/doc/tileset.cpp +++ b/src/doc/tileset.cpp @@ -45,13 +45,21 @@ Tileset::Tileset(Sprite* sprite, } // static -Tileset* Tileset::MakeCopyWithSameImages(const Tileset* tileset) +Tileset* Tileset::MakeCopyWithoutImages(const Tileset* tileset) { std::unique_ptr copy( new Tileset(tileset->sprite(), tileset->grid(), tileset->size())); copy->setName(tileset->name()); + copy->setUserData(tileset->userData()); + return copy.release(); +} + +// static +Tileset* Tileset::MakeCopyWithSameImages(const Tileset* tileset) +{ + std::unique_ptr copy(MakeCopyWithoutImages(tileset)); for (tile_index ti=0; tisize(); ++ti) { ImageRef image = tileset->get(ti); ASSERT(image); @@ -63,11 +71,7 @@ Tileset* Tileset::MakeCopyWithSameImages(const Tileset* tileset) // static Tileset* Tileset::MakeCopyCopyingImages(const Tileset* tileset) { - std::unique_ptr copy( - new Tileset(tileset->sprite(), - tileset->grid(), - tileset->size())); - copy->setName(tileset->name()); + std::unique_ptr copy(MakeCopyWithoutImages(tileset)); for (tile_index ti=0; tisize(); ++ti) { ImageRef image = tileset->get(ti); ASSERT(image); diff --git a/src/doc/tileset.h b/src/doc/tileset.h index d4e330234..f25f5c318 100644 --- a/src/doc/tileset.h +++ b/src/doc/tileset.h @@ -36,6 +36,7 @@ namespace doc { const Grid& grid, const tileset_index ntiles); + static Tileset* MakeCopyWithoutImages(const Tileset* tileset); static Tileset* MakeCopyWithSameImages(const Tileset* tileset); static Tileset* MakeCopyCopyingImages(const Tileset* tileset);