diff --git a/build_common.xml b/build_common.xml index ebe9d09d4..a6a2c4590 100644 --- a/build_common.xml +++ b/build_common.xml @@ -222,7 +222,9 @@ - + + + diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/CSMTextSettingsTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/CSMTextSettingsTag.java index 55d54dbcd..02fb32b06 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/CSMTextSettingsTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/CSMTextSettingsTag.java @@ -120,4 +120,9 @@ public class CSMTextSettingsTag extends Tag implements CharacterIdTag { public int getCharacterId() { return textID; } + + @Override + public void setCharacterId(int characterId) { + this.textID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBinaryDataTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBinaryDataTag.java index 92fb669e9..6495a3382 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBinaryDataTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBinaryDataTag.java @@ -139,4 +139,9 @@ public class DefineBinaryDataTag extends CharacterTag { } return false; } + + @Override + public void setCharacterId(int characterId) { + this.tag = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG2Tag.java index e0d882a82..6542748a4 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG2Tag.java @@ -124,4 +124,9 @@ public class DefineBitsJPEG2Tag extends ImageTag implements AloneTag { } return baos.toByteArray(); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG3Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG3Tag.java index 059f08f8f..b3200d378 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG3Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG3Tag.java @@ -161,4 +161,9 @@ public class DefineBitsJPEG3Tag extends ImageTag implements AloneTag { } return baos.toByteArray(); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG4Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG4Tag.java index f7115a098..dffa00621 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG4Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsJPEG4Tag.java @@ -171,4 +171,9 @@ public class DefineBitsJPEG4Tag extends ImageTag implements AloneTag { imageData = sis.readByteRangeEx(alphaDataOffset, "imageData"); bitmapAlphaData = sis.readByteRangeEx(sis.available(), "bitmapAlphaData"); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLossless2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLossless2Tag.java index da0eb07b8..44b4f186d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLossless2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLossless2Tag.java @@ -277,4 +277,9 @@ public class DefineBitsLossless2Tag extends ImageTag implements AloneTag { cachedImage = bi; return bi; } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLosslessTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLosslessTag.java index 2598abee2..32005166d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLosslessTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsLosslessTag.java @@ -279,4 +279,9 @@ public class DefineBitsLosslessTag extends ImageTag implements AloneTag { public String getImageFormat() { return "png"; } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsTag.java index b788897c8..c18fb732f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineBitsTag.java @@ -137,4 +137,9 @@ public class DefineBitsTag extends ImageTag implements TagChangedListener { public void handleEvent(Tag tag) { clearCache(); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java index be58a24b2..3865662bc 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButton2Tag.java @@ -323,4 +323,9 @@ public class DefineButton2Tag extends ButtonTag implements ASMSourceContainer { timeline.addFrame(frameHit); return timeline; } + + @Override + public void setCharacterId(int characterId) { + this.buttonId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonCxformTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonCxformTag.java index 1cdcfee46..abb23e6ad 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonCxformTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonCxformTag.java @@ -93,4 +93,9 @@ public class DefineButtonCxformTag extends Tag implements CharacterIdTag { public int getCharacterId() { return buttonId; } + + @Override + public void setCharacterId(int characterId) { + this.buttonId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonSoundTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonSoundTag.java index 0fa8f12a5..adfbf9ae6 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonSoundTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonSoundTag.java @@ -140,4 +140,9 @@ public class DefineButtonSoundTag extends Tag implements CharacterIdTag { buttonSoundInfo3 = sis.readSOUNDINFO("buttonSoundInfo3"); } } + + @Override + public void setCharacterId(int characterId) { + this.buttonId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java index 2562cb546..ab9c740ec 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineButtonTag.java @@ -413,4 +413,9 @@ public class DefineButtonTag extends ButtonTag implements ASMSource { public Tag getSourceTag() { return this; } + + @Override + public void setCharacterId(int characterId) { + this.buttonId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java index a7050631c..4601bf266 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineEditTextTag.java @@ -1124,4 +1124,9 @@ public class DefineEditTextTag extends TextTag { public String toHtmlCanvas(double unitDivisor) { return render(true, null, new Matrix(), new ColorTransform()); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java index 4621e4108..4c563c7cb 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java @@ -500,4 +500,9 @@ public class DefineFont2Tag extends FontTag { } return kerningAdjustment; } + + @Override + public void setCharacterId(int characterId) { + this.fontId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java index 86af9c754..e0ee3b24d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java @@ -515,4 +515,9 @@ public class DefineFont3Tag extends FontTag { } return kerningAdjustment; } + + @Override + public void setCharacterId(int characterId) { + this.fontId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java index 384995991..e515d8c59 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java @@ -105,4 +105,9 @@ public class DefineFont4Tag extends CharacterTag { } return baos.toByteArray(); } + + @Override + public void setCharacterId(int characterId) { + this.fontID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontAlignZonesTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontAlignZonesTag.java index f2d9cfdc0..2c44cf17c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontAlignZonesTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontAlignZonesTag.java @@ -103,4 +103,9 @@ public class DefineFontAlignZonesTag extends Tag implements CharacterIdTag { public int getCharacterId() { return fontID; } + + @Override + public void setCharacterId(int characterId) { + this.fontID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfo2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfo2Tag.java index be58aab80..d678dbada 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfo2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfo2Tag.java @@ -151,4 +151,9 @@ public class DefineFontInfo2Tag extends Tag implements CharacterIdTag { public int getCharacterId() { return fontID; } + + @Override + public void setCharacterId(int characterId) { + this.fontID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfoTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfoTag.java index d5366b8d9..fe034a882 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfoTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontInfoTag.java @@ -152,4 +152,9 @@ public class DefineFontInfoTag extends Tag implements CharacterIdTag { public int getCharacterId() { return fontId; } + + @Override + public void setCharacterId(int characterId) { + this.fontId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontNameTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontNameTag.java index 8f637ae88..b93b9f08d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontNameTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontNameTag.java @@ -85,4 +85,9 @@ public class DefineFontNameTag extends Tag implements CharacterIdTag { public int getCharacterId() { return fontId; } + + @Override + public void setCharacterId(int characterId) { + this.fontId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java index 6bf607695..dc7538b45 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java @@ -361,4 +361,9 @@ public class DefineFontTag extends FontTag { public int getCharKerningAdjustment(char c1, char c2) { return 0; } + + @Override + public void setCharacterId(int characterId) { + this.fontId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java index 6c8e40ffa..ebbfd2c77 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShape2Tag.java @@ -412,4 +412,9 @@ public class DefineMorphShape2Tag extends MorphShapeTag { return cmse.getShapeData(); } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java index e64c8815d..7f71e94f7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineMorphShapeTag.java @@ -388,4 +388,9 @@ public class DefineMorphShapeTag extends MorphShapeTag { return cmse.getShapeData(); } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineScalingGridTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineScalingGridTag.java index c8dae0967..3989487fe 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineScalingGridTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineScalingGridTag.java @@ -84,4 +84,9 @@ public class DefineScalingGridTag extends Tag implements CharacterIdTag { public int getCharacterId() { return characterId; } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java index ded652c64..1ca802a10 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape2Tag.java @@ -148,4 +148,9 @@ public class DefineShape2Tag extends ShapeTag { public boolean isSingleFrame() { return true; } + + @Override + public void setCharacterId(int characterId) { + this.shapeId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java index c129ea888..14319392e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape3Tag.java @@ -148,4 +148,9 @@ public class DefineShape3Tag extends ShapeTag { public boolean isSingleFrame() { return true; } + + @Override + public void setCharacterId(int characterId) { + this.shapeId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java index 08aaccd65..8a53527a7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShape4Tag.java @@ -172,4 +172,9 @@ public class DefineShape4Tag extends ShapeTag { public boolean isSingleFrame() { return true; } + + @Override + public void setCharacterId(int characterId) { + this.shapeId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java index 72811bf37..294add1c6 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineShapeTag.java @@ -146,4 +146,9 @@ public class DefineShapeTag extends ShapeTag { public boolean isSingleFrame() { return true; } + + @Override + public void setCharacterId(int characterId) { + this.shapeId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSoundTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSoundTag.java index 4e5878086..7cee60ec2 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSoundTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSoundTag.java @@ -355,4 +355,9 @@ public class DefineSoundTag extends CharacterTag implements SoundTag { final int[] rateMap = {5512, 11025, 22050, 44100}; return new SoundFormat(getSoundFormatId(), rateMap[getSoundRate()], getSoundType()); } + + @Override + public void setCharacterId(int characterId) { + this.soundId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java index c67c208b9..cd0262ada 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineSpriteTag.java @@ -367,4 +367,9 @@ public class DefineSpriteTag extends CharacterTag implements DrawableTag, Timeli public String toHtmlCanvas(double unitDivisor) { return getTimeline().toHtmlCanvas(unitDivisor, null); } + + @Override + public void setCharacterId(int characterId) { + this.spriteId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java index 6ffbf3613..b2b1e42fa 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineText2Tag.java @@ -633,4 +633,9 @@ public class DefineText2Tag extends TextTag { public String toHtmlCanvas(double unitDivisor) { return staticTextToHtmlCanvas(unitDivisor, swf, textRecords, 2, textBounds, textMatrix, new ColorTransform()); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java index 675dd0cad..aa99a563a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java @@ -645,4 +645,9 @@ public class DefineTextTag extends TextTag { public String toHtmlCanvas(double unitDivisor) { return staticTextToHtmlCanvas(unitDivisor, swf, textRecords, 1, textBounds, textMatrix, new ColorTransform()); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineVideoStreamTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineVideoStreamTag.java index e2399f363..06b564086 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineVideoStreamTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineVideoStreamTag.java @@ -145,4 +145,9 @@ public class DefineVideoStreamTag extends CharacterTag implements BoundedTag { public RECT getRect(Set added) { return new RECT(0, (int) (SWF.unitDivisor * width), 0, (int) (SWF.unitDivisor * height)); } + + @Override + public void setCharacterId(int characterId) { + this.characterID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DoInitActionTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DoInitActionTag.java index 4cbbca617..66757baca 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DoInitActionTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DoInitActionTag.java @@ -208,7 +208,7 @@ public class DoInitActionTag extends Tag implements CharacterIdTag, ASMSource { @Override public String getName() { - String expName = swf==null?"":swf.getExportName(spriteId); + String expName = swf == null ? "" : swf.getExportName(spriteId); if ((expName == null) || expName.isEmpty()) { return super.getName(); } @@ -245,4 +245,10 @@ public class DoInitActionTag extends Tag implements CharacterIdTag, ASMSource { public Tag getSourceTag() { return this; } + + @Override + public void setCharacterId(int characterId) { + this.spriteId = characterId; + } + } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject2Tag.java index 761eeda0c..c72e9c089 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject2Tag.java @@ -426,4 +426,9 @@ public class PlaceObject2Tag extends PlaceObjectTypeTag implements ASMSourceCont setModified(mod); matrix = old; } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject3Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject3Tag.java index 1388864a5..b4e7365e3 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject3Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject3Tag.java @@ -571,4 +571,9 @@ public class PlaceObject3Tag extends PlaceObjectTypeTag implements ASMSourceCont setModified(mod); matrix = old; } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject4Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject4Tag.java index 99343d58a..aa94232e8 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject4Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObject4Tag.java @@ -574,4 +574,9 @@ public class PlaceObject4Tag extends PlaceObjectTypeTag implements ASMSourceCont setModified(mod); matrix = old; } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObjectTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObjectTag.java index 382a06335..f9f887349 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObjectTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/PlaceObjectTag.java @@ -237,4 +237,9 @@ public class PlaceObjectTag extends PlaceObjectTypeTag { setModified(mod); matrix = old; } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObjectTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObjectTag.java index 230cad0f3..219aa1e6f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObjectTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObjectTag.java @@ -105,4 +105,9 @@ public class RemoveObjectTag extends RemoveTag implements CharacterIdTag { public int getCharacterId() { return characterId; } + + @Override + public void setCharacterId(int characterId) { + this.characterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHead2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHead2Tag.java index a7c10b998..d9391a08b 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHead2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHead2Tag.java @@ -243,4 +243,9 @@ public class SoundStreamHead2Tag extends Tag implements SoundStreamHeadTypeTag { String exportName = swf.getExportName(getCharacterId()); return getCharacterId() + (exportName != null ? "_" + exportName : ""); } + + @Override + public void setCharacterId(int characterId) { + this.virtualCharacterId = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHeadTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHeadTag.java index d45c7fce3..f4b290e83 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHeadTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/SoundStreamHeadTag.java @@ -98,6 +98,11 @@ public class SoundStreamHeadTag extends Tag implements SoundStreamHeadTypeTag { return virtualCharacterId; } + @Override + public void setCharacterId(int characterId) { + this.virtualCharacterId = characterId; + } + @Override public void setVirtualCharacterId(int ch) { virtualCharacterId = ch; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/VideoFrameTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/VideoFrameTag.java index b49ee7b46..067f7b2a4 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/VideoFrameTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/VideoFrameTag.java @@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.tags; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFInputStream; import com.jpexs.decompiler.flash.SWFOutputStream; +import com.jpexs.decompiler.flash.tags.base.CharacterIdTag; import com.jpexs.decompiler.flash.types.BasicType; import com.jpexs.decompiler.flash.types.annotations.SWFType; import com.jpexs.helpers.ByteArrayRange; @@ -31,7 +32,7 @@ import java.io.OutputStream; * * @author JPEXS */ -public class VideoFrameTag extends Tag { +public class VideoFrameTag extends Tag implements CharacterIdTag { @SWFType(BasicType.UI16) public int streamID; @@ -91,4 +92,14 @@ public class VideoFrameTag extends Tag { frameNum = sis.readUI16("frameNum"); videoData = sis.readByteRangeEx(sis.available(), "videoData"); //TODO: Parse video packets } + + @Override + public int getCharacterId() { + return streamID; + } + + @Override + public void setCharacterId(int characterId) { + this.streamID = characterId; + } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java index 34c2ba75f..5bcf1bcc8 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java @@ -23,4 +23,6 @@ package com.jpexs.decompiler.flash.tags.base; public interface CharacterIdTag { public int getCharacterId(); + + public void setCharacterId(int characterId); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java index 044d3d94e..9a4c9d6ea 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java @@ -423,4 +423,9 @@ public final class DefineCompactedFont extends FontTag implements DrawableTag { public boolean hasLayout() { return true; } + + @Override + public void setCharacterId(int characterId) { + this.fontId = characterId; + } } diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java index 1360dab45..212589e8a 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java @@ -94,6 +94,7 @@ import com.jpexs.decompiler.flash.tags.Tag; import com.jpexs.decompiler.flash.tags.VideoFrameTag; import com.jpexs.decompiler.flash.tags.base.ASMSource; import com.jpexs.decompiler.flash.tags.base.ButtonTag; +import com.jpexs.decompiler.flash.tags.base.FontTag; import com.jpexs.decompiler.flash.tags.base.ImageTag; import com.jpexs.decompiler.flash.tags.base.MorphShapeTag; import com.jpexs.decompiler.flash.tags.base.PlaceObjectTypeTag; @@ -177,7 +178,7 @@ public class TagTree extends JTree { // SWF was closed value = null; } - + super.getTreeCellRendererComponent( tree, value, sel, expanded, leaf, row, @@ -410,9 +411,12 @@ public class TagTree extends JTree { ret = new ArrayList<>(); break; case TagTreeModel.FOLDER_OTHERS: - ret = Arrays.asList(CSMTextSettingsTag.ID, DebugIDTag.ID, DefineButtonCxformTag.ID, DefineButtonSoundTag.ID, - DefineFontAlignZonesTag.ID, DefineFontInfoTag.ID, DefineFontInfo2Tag.ID, DefineFontNameTag.ID, - DefineScalingGridTag.ID, DefineSceneAndFrameLabelDataTag.ID, + ret = Arrays.asList( + //CSMTextSettingsTag.ID, + DebugIDTag.ID, + //DefineButtonCxformTag.ID, DefineButtonSoundTag.ID, + //DefineFontAlignZonesTag.ID, DefineFontInfoTag.ID, DefineFontInfo2Tag.ID, DefineFontNameTag.ID, + /*DefineScalingGridTag.ID,*/ DefineSceneAndFrameLabelDataTag.ID, DoABCDefineTag.ID, DoABCTag.ID, DoActionTag.ID, DoInitActionTag.ID, EnableDebuggerTag.ID, EnableDebugger2Tag.ID, EnableTelemetryTag.ID, ExportAssetsTag.ID, FileAttributesTag.ID, ImportAssetsTag.ID, ImportAssets2Tag.ID, @@ -424,11 +428,27 @@ public class TagTree extends JTree { return ret; } - public List getSpriteNestedTagIds() { - return Arrays.asList(PlaceObjectTag.ID, PlaceObject2Tag.ID, PlaceObject3Tag.ID, PlaceObject4Tag.ID, - RemoveObjectTag.ID, RemoveObject2Tag.ID, ShowFrameTag.ID, FrameLabelTag.ID, - StartSoundTag.ID, StartSound2Tag.ID, VideoFrameTag.ID, - SoundStreamBlockTag.ID, SoundStreamHeadTag.ID, SoundStreamHead2Tag.ID); + public List getNestedTagIds(Tag obj) { + if (obj instanceof DefineSpriteTag) { + return Arrays.asList(PlaceObjectTag.ID, PlaceObject2Tag.ID, PlaceObject3Tag.ID, PlaceObject4Tag.ID, + RemoveObjectTag.ID, RemoveObject2Tag.ID, ShowFrameTag.ID, FrameLabelTag.ID, + StartSoundTag.ID, StartSound2Tag.ID, VideoFrameTag.ID, + SoundStreamBlockTag.ID, SoundStreamHeadTag.ID, SoundStreamHead2Tag.ID, + DefineScalingGridTag.ID); + } + if (obj instanceof FontTag) { + return Arrays.asList(DefineFontNameTag.ID, DefineFontAlignZonesTag.ID, DefineFontInfoTag.ID, DefineFontInfo2Tag.ID); + } + if (obj instanceof TextTag) { + return Arrays.asList(CSMTextSettingsTag.ID); + } + if (obj instanceof DefineButtonTag) { + return Arrays.asList(DefineButtonCxformTag.ID, DefineButtonSoundTag.ID, DefineScalingGridTag.ID); + } + if (obj instanceof DefineButton2Tag) { + return Arrays.asList(DefineButtonSoundTag.ID, DefineScalingGridTag.ID); + } + return null; } public boolean hasExportableNodes() { @@ -565,7 +585,7 @@ public class TagTree extends JTree { if (!mainPanel.folderPreviewPanel.selectedItems.isEmpty()) { return mainPanel.folderPreviewPanel.selectedItems.entrySet().iterator().next().getValue(); } - + TreeItem item = (TreeItem) getLastSelectedPathComponent(); return item; } @@ -580,7 +600,7 @@ public class TagTree extends JTree { TreeItem root = ttm.getRoot(); expandPath(new TreePath(new Object[]{root})); } - + public void expandFirstLevelNodes() { TagTreeModel ttm = getModel(); TreeItem root = ttm.getRoot(); diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java index bae04f0ef..3f13f6acb 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java @@ -324,8 +324,8 @@ public class TagTreeContextMenu extends JPopupMenu implements ActionListener { List allowedTagTypes = null; if (firstItem instanceof FolderItem) { allowedTagTypes = tagTree.getSwfFolderItemNestedTagIds(((FolderItem) firstItem).getName(), firstItem.getSwf().gfx); - } else if (firstItem instanceof DefineSpriteTag) { - allowedTagTypes = tagTree.getSpriteNestedTagIds(); + } else if (firstItem instanceof Tag) { + allowedTagTypes = tagTree.getNestedTagIds((Tag) firstItem); } addTagMenu.removeAll(); @@ -347,7 +347,19 @@ public class TagTreeContextMenu extends JPopupMenu implements ActionListener { if (isDefineSprite) { ((DefineSpriteTag) firstItem).subTags.add(t); } else { - swf.tags.add(t); + if (firstItem instanceof Tag) { + if ((t instanceof CharacterIdTag) && (firstItem instanceof CharacterTag)) { + ((CharacterIdTag) t).setCharacterId(((CharacterTag) firstItem).getCharacterId()); + } + int index = swf.tags.indexOf(firstItem); + if (index > -1) { + swf.tags.add(index, t); + } else { + swf.tags.add(t); + } + } else { + swf.tags.add(t); + } } timelined.getTimeline().reset(); swf.updateCharacters();