mirror of https://github.com/aseprite/aseprite.git
				
				
				
			Use Sprite::allLayersCount/allLayers() when possible
This commit is contained in:
		
							parent
							
								
									e35a26fdeb
								
							
						
					
					
						commit
						f4b9f3c322
					
				| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
// Aseprite
 | 
			
		||||
// Copyright (C) 2001-2015  David Capello
 | 
			
		||||
// Copyright (C) 2001-2016  David Capello
 | 
			
		||||
//
 | 
			
		||||
// This program is free software; you can redistribute it and/or modify
 | 
			
		||||
// it under the terms of the GNU General Public License version 2 as
 | 
			
		||||
| 
						 | 
				
			
			@ -41,8 +41,7 @@ void CopyFrame::onExecute()
 | 
			
		|||
  if (fromFrame >= m_newFrame)
 | 
			
		||||
    ++fromFrame;
 | 
			
		||||
 | 
			
		||||
  for (int i=0; i<sprite->countLayers(); ++i) {
 | 
			
		||||
    Layer* layer = sprite->layer(i);
 | 
			
		||||
  for (Layer* layer : sprite->allLayers()) {
 | 
			
		||||
    if (layer->isImage())  {
 | 
			
		||||
      executeAndAdd(new cmd::CopyCel(
 | 
			
		||||
          static_cast<LayerImage*>(layer), fromFrame,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,7 +81,7 @@ void RemoveLayerCommand::onExecute(Context* context)
 | 
			
		|||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      if (sprite->countLayers() == 1) {
 | 
			
		||||
      if (sprite->allLayersCount() == 1) {
 | 
			
		||||
        ui::Alert::show("Error<<You cannot delete the last layer.||&OK");
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -102,8 +102,10 @@ public:
 | 
			
		|||
    sprite->setFrameDuration(frame_t(2), 3);
 | 
			
		||||
    sprite->setFrameDuration(frame_t(3), 4);
 | 
			
		||||
 | 
			
		||||
    LayerList layers = sprite->allLayers();
 | 
			
		||||
 | 
			
		||||
    for (int i=0; i<4; i++) {
 | 
			
		||||
      LayerImage* layer = static_cast<LayerImage*>(sprite->indexToLayer(LayerIndex(i)));
 | 
			
		||||
      LayerImage* layer = static_cast<LayerImage*>(layers[i]);
 | 
			
		||||
 | 
			
		||||
      for (int j=0; j<4; j++) {
 | 
			
		||||
        Cel* cel = layer->cel(frame_t(j));
 | 
			
		||||
| 
						 | 
				
			
			@ -127,19 +129,23 @@ public:
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  bool expect_layer(Layer* expected_layer, int layer) {
 | 
			
		||||
    return expect_layer_frame(sprite->layerToIndex(expected_layer), -1, layer, -1);
 | 
			
		||||
  bool expect_layer(Layer* expected_layer, layer_t layer) {
 | 
			
		||||
    LayerList layers = sprite->allLayers();
 | 
			
		||||
    return expect_layer_frame(
 | 
			
		||||
      find_layer_index(layers, expected_layer), -1, layer, -1);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool expect_frame(int expected_frame, frame_t frame) {
 | 
			
		||||
    for (int i=0; i<(int)sprite->countLayers(); ++i) {
 | 
			
		||||
  bool expect_frame(layer_t expected_frame, frame_t frame) {
 | 
			
		||||
    LayerList layers = sprite->allLayers();
 | 
			
		||||
    for (int i=0; i<(int)layers.size(); ++i) {
 | 
			
		||||
      if (!expect_layer_frame(i, expected_frame, i, frame))
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool expect_layer_frame(int expected_layer, int expected_frame, int layer, frame_t frame) {
 | 
			
		||||
  bool expect_layer_frame(layer_t expected_layer, frame_t expected_frame,
 | 
			
		||||
                          layer_t layer, frame_t frame) {
 | 
			
		||||
    if (frame >= 0) {
 | 
			
		||||
      if (!expect_cel(expected_layer, expected_frame, layer, frame))
 | 
			
		||||
        return false;
 | 
			
		||||
| 
						 | 
				
			
			@ -149,9 +155,10 @@ protected:
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    if (layer >= 0) {
 | 
			
		||||
      Layer* a = sprite->indexToLayer(LayerIndex(expected_layer));
 | 
			
		||||
      Layer* b = sprite->indexToLayer(LayerIndex(layer));
 | 
			
		||||
      EXPECT_EQ(a, b);
 | 
			
		||||
      LayerList layers = sprite->allLayers();
 | 
			
		||||
      Layer* a = layers[expected_layer];
 | 
			
		||||
      Layer* b = layers[layer];
 | 
			
		||||
      EXPECT_EQ(a->name(), b->name());
 | 
			
		||||
      if (a != b)
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -159,10 +166,12 @@ protected:
 | 
			
		|||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool expect_cel(int expected_layer, int expected_frame, int layer, frame_t frame) {
 | 
			
		||||
  bool expect_cel(layer_t expected_layer, frame_t expected_frame,
 | 
			
		||||
                  layer_t layer, frame_t frame) {
 | 
			
		||||
    color_t expected_color = white;
 | 
			
		||||
 | 
			
		||||
    Cel* cel = sprite->indexToLayer(LayerIndex(layer))->cel(frame);
 | 
			
		||||
    LayerList layers = sprite->allLayers();
 | 
			
		||||
    Cel* cel = layers[layer]->cel(frame);
 | 
			
		||||
    if (!cel)
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -175,8 +184,9 @@ protected:
 | 
			
		|||
    return (expected_color == color);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool expect_empty_cel(int layer, frame_t frame) {
 | 
			
		||||
    Cel* cel = sprite->indexToLayer(LayerIndex(layer))->cel(frame);
 | 
			
		||||
  bool expect_empty_cel(layer_t layer, frame_t frame) {
 | 
			
		||||
    LayerList layers = sprite->allLayers();
 | 
			
		||||
    Cel* cel = layers[layer]->cel(frame);
 | 
			
		||||
 | 
			
		||||
    EXPECT_EQ(NULL, cel);
 | 
			
		||||
    return (cel == NULL);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,6 +138,7 @@ bool PixlyFormat::onLoad(FileOp* fop)
 | 
			
		|||
    int sheetHeight = sheet->height();
 | 
			
		||||
 | 
			
		||||
    // slice cels from sheet
 | 
			
		||||
    LayerList layers = sprite->allLayers();
 | 
			
		||||
    std::vector<int> visible(layerCount, 0);
 | 
			
		||||
 | 
			
		||||
    TiXmlElement* xmlFrame = check(xmlFrames->FirstChild("Frame"))->ToElement();
 | 
			
		||||
| 
						 | 
				
			
			@ -147,8 +148,8 @@ bool PixlyFormat::onLoad(FileOp* fop)
 | 
			
		|||
 | 
			
		||||
      int index = check_number<int>(xmlIndex->Attribute("linear"));
 | 
			
		||||
      frame_t frame(index / layerCount);
 | 
			
		||||
      LayerIndex layer_index(index % layerCount);
 | 
			
		||||
      Layer *layer = sprite->indexToLayer(layer_index);
 | 
			
		||||
      layer_t layer_index(index % layerCount);
 | 
			
		||||
      Layer* layer = layers[layer_index];
 | 
			
		||||
 | 
			
		||||
      const char * duration = xmlFrame->Attribute("duration");
 | 
			
		||||
      if (duration) {
 | 
			
		||||
| 
						 | 
				
			
			@ -212,10 +213,8 @@ bool PixlyFormat::onLoad(FileOp* fop)
 | 
			
		|||
      fop->setProgress(0.5 + 0.5 * ((float)(index+1) / (float)imageCount));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (int i=0; i<layerCount; i++) {
 | 
			
		||||
      LayerIndex layer_index(i);
 | 
			
		||||
      Layer *layer = sprite->indexToLayer(layer_index);
 | 
			
		||||
      layer->setVisible(visible[i] > frameCount/2);
 | 
			
		||||
    for (layer_t i=0; i<layerCount; i++) {
 | 
			
		||||
      layers[i]->setVisible(visible[i] > frameCount/2);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fop->createDocument(sprite);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,7 +71,7 @@ Palette* create_palette_from_sprite(
 | 
			
		|||
    palette,
 | 
			
		||||
    // Transparent color is needed if we have transparent layers
 | 
			
		||||
    (sprite->backgroundLayer() &&
 | 
			
		||||
     sprite->countLayers() == 1 ? -1: sprite->transparentColor()),
 | 
			
		||||
     sprite->allLayersCount() == 1 ? -1: sprite->transparentColor()),
 | 
			
		||||
    delegate);
 | 
			
		||||
 | 
			
		||||
  return palette;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue