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();