Skip to content

Commit cefc73d

Browse files
progrematicMadour
authored andcommitted
add support for Layer's OverrideTilesetUid
1 parent d5b622e commit cefc73d

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

include/LDtkLoader/Layer.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ namespace ldtk {
5757
void updateTileVerticesCol(const Tile& tile) const;
5858

5959
const LayerDef* m_definition = nullptr;
60+
const Tileset* m_override_tileset = nullptr;
6061

6162
bool m_visible;
6263
mutable IntPoint m_total_offset;

src/Layer.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ m_total_offset(j["__pxTotalOffsetX"].get<int>(), j["__pxTotalOffsetY"].get<int>(
1515
m_opacity(j["__opacity"].get<float>()),
1616
m_grid_size({j["__cWid"].get<int>(), j["__cHei"].get<int>()})
1717
{
18+
if ( !j["overrideTilesetUid"].is_null() ) {
19+
m_override_tileset = &w->getTileset(j["overrideTilesetUid"].get<int>());
20+
}
21+
1822
std::string key = "gridTiles";
1923
int coordId_index = 0;
2024
if (getType() == LayerType::IntGrid || getType() == LayerType::AutoLayer) {
@@ -112,11 +116,11 @@ void Layer::setOpacity(float opacity) const {
112116
}
113117

114118
auto Layer::hasTileset() const -> bool {
115-
return m_definition->m_tileset != nullptr;
119+
return m_override_tileset != nullptr || m_definition->m_tileset != nullptr;
116120
}
117121

118122
auto Layer::getTileset() const -> const Tileset& {
119-
return *m_definition->m_tileset;
123+
return m_override_tileset == nullptr ? *m_definition->m_tileset : *m_override_tileset;
120124
}
121125

122126
auto Layer::allTiles() const -> const std::vector<Tile>& {

0 commit comments

Comments
 (0)