public static void UpdateReferencesAfterCopy(XmlSprite oldSprite, XmlSprite newSprite)
{
var scriptCount = 0;
foreach (var script in oldSprite.Scripts.Scripts)
{
var brickCount = 0;
foreach (var brick in script.Bricks.Bricks)
{
/* //TODO outdated? if (brick is XmlChangeVariableBrick || brick is XmlSetVariableBrick)
UpdateVariableReference(oldSprite, newSprite, scriptCount, brickCount);
else */
if (brick is XmlSetLookBrick)
UpdateLookReference(oldSprite, newSprite, scriptCount, brickCount);
else if (brick is XmlForeverBrick || brick is XmlRepeatBrick)
UpdateLoopEndBrickReference(oldSprite, newSprite, scriptCount, brickCount);
else if (brick is XmlIfLogicBeginBrick)
{
UpdateIfLogicElseBrickReference(oldSprite, newSprite, scriptCount, brickCount);
UpdateIfLogicEndBrickReference(oldSprite, newSprite, scriptCount, brickCount);
}
else if (brick is XmlIfLogicElseBrick)
{
UpdateIfLogicBeginBrickReference(oldSprite, newSprite, scriptCount, brickCount);
UpdateIfLogicEndBrickReference(oldSprite, newSprite, scriptCount, brickCount);
}
else if (brick is XmlIfLogicEndBrick)
{
UpdateIfLogicBeginBrickReference(oldSprite, newSprite, scriptCount, brickCount);
UpdateIfLogicElseBrickReference(oldSprite, newSprite, scriptCount, brickCount);
}
else if (brick is XmlLoopEndBrick)
UpdateLoopBeginBrickReference(oldSprite, newSprite, scriptCount, brickCount);
else if (brick is XmlPlaySoundBrick)
UpdateSoundReference(oldSprite, newSprite, scriptCount, brickCount);
brickCount++;
}
scriptCount++;
}
}