mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-30 04:20:23 +00:00
Fix loading multiple layer group levels from .ase files
This commit is contained in:
parent
d0c9266eaf
commit
7a6e428fe1
@ -898,8 +898,20 @@ static Layer* ase_file_read_layer_chunk(FILE* f, ASE_Header* header, Sprite* spr
|
|||||||
(*previous_layer)->parent()->addLayer(layer);
|
(*previous_layer)->parent()->addLayer(layer);
|
||||||
else if (child_level > *current_level)
|
else if (child_level > *current_level)
|
||||||
static_cast<LayerGroup*>(*previous_layer)->addLayer(layer);
|
static_cast<LayerGroup*>(*previous_layer)->addLayer(layer);
|
||||||
else if (child_level < *current_level)
|
else if (child_level < *current_level) {
|
||||||
(*previous_layer)->parent()->parent()->addLayer(layer);
|
LayerGroup* parent = (*previous_layer)->parent();
|
||||||
|
ASSERT(parent);
|
||||||
|
if (parent) {
|
||||||
|
int levels = (*current_level - child_level);
|
||||||
|
while (levels--) {
|
||||||
|
ASSERT(parent->parent());
|
||||||
|
if (!parent->parent())
|
||||||
|
break;
|
||||||
|
parent = parent->parent();
|
||||||
|
}
|
||||||
|
parent->addLayer(layer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*previous_layer = layer;
|
*previous_layer = layer;
|
||||||
*current_level = child_level;
|
*current_level = child_level;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user