From 86f1961f81994ef68e5b5d66bf24086426c4e058 Mon Sep 17 00:00:00 2001 From: Gaspar Capello Date: Wed, 3 Jul 2024 10:12:14 -0300 Subject: [PATCH] Fix suggestions by Dacap --- src/app/commands/cmd_export_sprite_sheet.cpp | 22 ++++++++++--------- tests/scripts/app_command.lua | 4 ++-- tests/sprites/groups4.aseprite | Bin 1013 -> 0 bytes 3 files changed, 14 insertions(+), 12 deletions(-) delete mode 100644 tests/sprites/groups4.aseprite diff --git a/src/app/commands/cmd_export_sprite_sheet.cpp b/src/app/commands/cmd_export_sprite_sheet.cpp index e4f3bb64c..2006a2097 100644 --- a/src/app/commands/cmd_export_sprite_sheet.cpp +++ b/src/app/commands/cmd_export_sprite_sheet.cpp @@ -153,17 +153,15 @@ void destroy_doc(Context* ctx, Doc* doc) } } -void insertLayersToSelectedLayers(Layer* layer, SelectedLayers* selectedLayers) +void insert_layers_to_selected_layers(Layer* layer, SelectedLayers& selectedLayers) { if (layer->isGroup()) { - auto childs = static_cast(layer)->layers(); - if (childs.size() == 0) - return; - for (auto child : childs) - insertLayersToSelectedLayers(child, selectedLayers); + auto children = static_cast(layer)->layers(); + for (auto child : children) + insert_layers_to_selected_layers(child, selectedLayers); } else - selectedLayers->insert(const_cast(layer)); + selectedLayers.insert(layer); } Doc* generate_sprite_sheet_from_params( @@ -222,12 +220,16 @@ Doc* generate_sprite_sheet_from_params( SelectedLayers selLayers; if (layerName != kSelectedLayers) { + // TODO add a getLayerByName + int i = sprite->allLayersCount(); for (Layer* layer : sprite->allLayers()) { - if (get_layer_path(layer) == layerName ) { + i--; + if (get_layer_path(layer) == layerName && + (layerIndex == -1 || layerIndex == i)) { if (layer->isGroup()) - insertLayersToSelectedLayers(layer, &selLayers); + insert_layers_to_selected_layers(layer, selLayers); else - selLayers.insert(const_cast(layer)); + selLayers.insert(layer); break; } } diff --git a/tests/scripts/app_command.lua b/tests/scripts/app_command.lua index d09b68a12..4f70e5d1e 100644 --- a/tests/scripts/app_command.lua +++ b/tests/scripts/app_command.lua @@ -100,12 +100,12 @@ do -- ExportSpriteSheet 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0, }) - local s = Sprite{ fromFile="sprites/groups4.aseprite" } + local s = Sprite{ fromFile="sprites/groups3abc.aseprite" } local c = app.pixelColor.rgba(75, 105, 47) app.command.ExportSpriteSheet { type=SpriteSheetType.ROWS, textureFilename="_test_export_spritesheet4.png", - layer="G1/G2/G3/b", + layer="b/b", trim=true, } local i = Image{ fromFile="_test_export_spritesheet4.png" } diff --git a/tests/sprites/groups4.aseprite b/tests/sprites/groups4.aseprite deleted file mode 100644 index 8255e674d9ad89e743a796a429b1bdf6dd531e5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1013 zcmey$%)szqDI)_X12=;L10w?iLkbWh08k7h$RGfOv;d_*`+t3u0NW}7v_K4q*%iQ6 zB3YLOWV3)=rvPLqDVVrw*rZt+_J>*DFI2m^Ano1ZS-(G-&3qb=wa>tON}hM7evr3{ zk&UIjeThLrQ*_?LRtWQ zy}I%Zq(C+)FoQz^$b>r?6MhGoTP#Yj-B_p)J zBtY^&Eyf5fASZwTL`xDv0;UBbk&2LjSr3s&Ls$Ya2tooaF~Ow;ryr4QN3|qb7icQ0 z0z~jX%w-JBKv*&7_urFm{^zTlVPJWY!?5?6=z9aOVkV#@&|7GVXa6*L@ZU!vjiG5~ z#0>==hS*-=IS|8HfT~$A)Em#A^!>gJr!fPgl{AA<1%IbL*l;$W;h2g)pS$w^J?{}7 zhX=i_yoVT`-r&`Tn9a_>hDAB|r?8*$EiIA@7$SKX9-HtuLKJfV6=OR5^sV#{_S~Gt z4vd>57);Uxk|2t?fJ!+qUA<}JpM0Rn4GeR686L88cSBsw4Rkf8;?3Ljf9CT8U7gSm ea`kHi-Wd?Hd4LYVRBr5%@hiUp>S}Hoz6t=7?w$$&