private List<Sprite> MoveSpritesIntoNewPositionInFolder(int nearestSprite, bool putSpritesBeforeSelection, SpriteManagerDragDropData dragged)
{
List<Sprite> newFolderContents = new List<Sprite>();
foreach (Sprite sprite in _currentFolder.Sprites)
{
bool addThisSpriteToNewList = true;
if (sprite.Number == nearestSprite)
{
if (!putSpritesBeforeSelection)
{
newFolderContents.Add(sprite);
addThisSpriteToNewList = false;
}
foreach (Sprite draggedSprite in dragged.Sprites)
{
if ((draggedSprite.Number != sprite.Number) || (putSpritesBeforeSelection))
{
newFolderContents.Add(draggedSprite);
}
}
}
foreach (Sprite draggedSprite in dragged.Sprites)
{
if (sprite.Number == draggedSprite.Number)
{
addThisSpriteToNewList = false;
break;
}
}
if (addThisSpriteToNewList)
{
newFolderContents.Add(sprite);
}
}
return newFolderContents;
}