From fa9ad6c1a3b0adcf578dec7dcb495f25659e9c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Wed, 31 Jul 2024 16:59:33 +0200 Subject: [PATCH] format --- .../decompiler/flash/xfl/XFLConverter.java | 104 +++++++++--------- 1 file changed, 49 insertions(+), 55 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java index 193416beb..7fd6dba74 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java @@ -1306,21 +1306,21 @@ public class XFLConverter { private static Set getCharactersAndAllDependent(SWF swf) { Set ret = new LinkedIdentityHashSet<>(); - + Set charsInThisSwf = new LinkedIdentityHashSet<>(); - + charsInThisSwf.addAll(swf.getCharacters(true).values()); - + ret.addAll(charsInThisSwf); - + for (CharacterTag ct : charsInThisSwf) { walkNeededCharacters(ret, ct); } - + walkNeededClasses(ret, swf.getTags()); return ret; } - + private static void walkNeededClasses(Set ret, ReadOnlyTagList tags) { for (Tag t : tags) { if (t instanceof DefineSpriteTag) { @@ -1334,17 +1334,17 @@ public class XFLConverter { CharacterTag ct = pt.getSwf().getCharacterByClass(cls); if (ct != null) { if (!ret.contains(ct)) { - ret.add(ct); + ret.add(ct); walkNeededCharacters(ret, ct); } - } + } } } } } - + private static void walkNeededCharacters(Set result, CharacterTag ct) { - Set needed = new HashSet<>(); + Set needed = new HashSet<>(); ct.getNeededCharactersDeep(needed); for (int n : needed) { CharacterTag nc = ct.getSwf().getCharacter(n); @@ -1533,10 +1533,11 @@ public class XFLConverter { convertAdjustColorFilter(cmf, writer); } } - + private static String getSymbolName(Reference lastImportedId, Map characterNameMap, SWF swf, CharacterTag tag) { return getSymbolName(lastImportedId, characterNameMap, swf, tag, "Symbol"); } + private static String getSymbolName(Reference lastImportedId, Map characterNameMap, SWF swf, CharacterTag tag, String kind) { if (characterNameMap.containsKey(tag)) { return characterNameMap.get(tag); @@ -1544,17 +1545,17 @@ public class XFLConverter { int characterId = swf.getCharacterId(tag); if (characterId == -1) { lastImportedId.setVal(lastImportedId.getVal() + 1); - characterNameMap.put(tag, "imported/" + kind +" " + lastImportedId.getVal()); - } else { + characterNameMap.put(tag, "imported/" + kind + " " + lastImportedId.getVal()); + } else { characterNameMap.put(tag, kind + " " + characterId); - } + } return characterNameMap.get(tag); } private String getMaskedSymbolName(int symbolId) { //FIXME: Does this work with importassets??? return (DEBUG_EXPORT_LAYER_DEPTHS ? "MaskedSymbol " : "Symbol ") + symbolId; } - + private static void convertSymbolInstance(Reference lastImportedId, Map characterNameMap, SWF swf, String name, MATRIX matrix, ColorTransform colorTransform, boolean cacheAsBitmap, int blendMode, List filters, boolean isVisible, RGBA backgroundColor, CLIPACTIONS clipActions, Amf3Value metadata, CharacterTag tag, ReadOnlyTagList tags, FLAVersion flaVersion, XFLXmlWriter writer) throws XMLStreamException { if (matrix == null) { matrix = new MATRIX(); @@ -1768,7 +1769,7 @@ public class XFLConverter { } } } - + for (CharacterTag ct : characters) { String cls = characterClasses.get(ct); if (cls != null) { @@ -1778,7 +1779,7 @@ public class XFLConverter { } } } - + statusStack.pushStatus("media"); convertMedia(lastImportedId, characterNameMap, characterImportLinkageURL, characters, swf, characterVariables, characterClasses, nonLibraryShapes, backgroundColor, tags, files, datfiles, flaVersion, writer, statusStack); statusStack.popStatus(); @@ -1791,7 +1792,7 @@ public class XFLConverter { //boolean hasSymbol = false; Reference nextClipId = new Reference<>(-1); writer.writeStartElement("symbols"); - + for (CharacterTag symbol : characters) { if ((symbol instanceof ShapeTag) && nonLibraryShapes.contains(symbol)) { continue; //shapes with 1 ocurrence and single layer are not added to library @@ -1807,10 +1808,10 @@ public class XFLConverter { "name", getSymbolName(lastImportedId, characterNameMap, swf, symbol), "lastModified", Long.toString(getTimestamp(swf))}); //TODO:itemID if (characterImportLinkageURL.containsKey(symbol)) { - symbolStr.writeAttribute("linkageImportForRS", "true"); - symbolStr.writeAttribute("linkageURL", characterImportLinkageURL.get(symbol)); + symbolStr.writeAttribute("linkageImportForRS", "true"); + symbolStr.writeAttribute("linkageURL", characterImportLinkageURL.get(symbol)); } - + if (symbol instanceof ShapeTag) { symbolStr.writeAttribute("symbolType", "graphic"); } else if (symbol instanceof ButtonTag) { @@ -2245,7 +2246,7 @@ public class XFLConverter { "sourceLastImported", Long.toString(getTimestamp(swf)), "externalFileSize", Integer.toString(data.length)}); if ((symbol instanceof CharacterTag) && characterImportLinkageURL.containsKey((CharacterTag) symbol)) { - writer.writeAttribute("linkageImportForRS", "true"); + writer.writeAttribute("linkageImportForRS", "true"); writer.writeAttribute("linkageURL", characterImportLinkageURL.get((CharacterTag) symbol)); } writer.writeAttribute("href", symbolFile); @@ -2324,12 +2325,12 @@ public class XFLConverter { "name", symbolFile, "sourceLastImported", Long.toString(getTimestamp(swf)), "externalFileSize", Integer.toString(imageBytes.length)}); - + if (characterImportLinkageURL.containsKey(symbol)) { - writer.writeAttribute("linkageImportForRS", "true"); + writer.writeAttribute("linkageImportForRS", "true"); writer.writeAttribute("linkageURL", characterImportLinkageURL.get(symbol)); } - + if (allowSmoothing) { writer.writeAttribute("allowSmoothing", true); } @@ -2378,10 +2379,10 @@ public class XFLConverter { convertSoundMedia(characterImportLinkageURL, swf, tags, (DefineSoundTag) symbol, writer, files, datfiles); if (characterImportLinkageURL.containsKey(symbol)) { - writer.writeAttribute("linkageImportForRS", "true"); - writer.writeAttribute("linkageURL", characterImportLinkageURL.get(symbol)); + writer.writeAttribute("linkageImportForRS", "true"); + writer.writeAttribute("linkageURL", characterImportLinkageURL.get(symbol)); } - + boolean linkageExportForAS = false; if (characterClasses.containsKey(symbol)) { linkageExportForAS = true; @@ -2433,9 +2434,9 @@ public class XFLConverter { "sourceLastImported", Long.toString(ts), "videoDataHRef", datFileName, "channels", "0", - "isSpecial", "true"}); + "isSpecial", "true"}); if (characterImportLinkageURL.containsKey(symbol)) { - writer.writeAttribute("linkageImportForRS", "true"); + writer.writeAttribute("linkageImportForRS", "true"); writer.writeAttribute("linkageURL", characterImportLinkageURL.get(symbol)); } writer.writeEndElement(); @@ -2460,9 +2461,9 @@ public class XFLConverter { writer.writeStartElement("DOMVideoItem", new String[]{ "name", symbolFile, "sourceLastImported", Long.toString(getTimestamp(swf)), - "externalFileSize", Integer.toString(data.length)}); + "externalFileSize", Integer.toString(data.length)}); if (characterImportLinkageURL.containsKey(symbol)) { - writer.writeAttribute("linkageImportForRS", "true"); + writer.writeAttribute("linkageImportForRS", "true"); writer.writeAttribute("linkageURL", characterImportLinkageURL.get(symbol)); } writer.writeAttribute("href", symbolFile); @@ -2762,7 +2763,7 @@ public class XFLConverter { } else if (newCharCls != null) { newCharacter = po.getSwf().getCharacterByClass(newCharCls); } - + if (newCharacter != null && newCharacter != character) { if (shapeTween && character != null) { MorphShapeTag m = (MorphShapeTag) character; @@ -2931,7 +2932,7 @@ public class XFLConverter { elementsWriter.writeCharactersRaw(lastElements); } else { statusStack.pushStatus(m.toString()); - convertShape(lastImportedId, characterNameMap, swf, matrix, m.getShapeNum() == 1 ? 3 : 4, m.getStartEdges().shapeRecords, m.getFillStyles().getStartFillStyles(), m.getLineStyles().getStartLineStyles(m.getShapeNum()), true, false, elementsWriter); + convertShape(lastImportedId, characterNameMap, swf, matrix, m.getShapeNum() == 1 ? 3 : 4, m.getStartEdges().shapeRecords, m.getFillStyles().getStartFillStyles(), m.getLineStyles().getStartLineStyles(m.getShapeNum()), true, false, elementsWriter); statusStack.popStatus(); } shapeTween = true; @@ -3470,7 +3471,6 @@ public class XFLConverter { Reference nextClipId, List nonLibraryShapes, String backgroundColor, - FLAVersion flaVersion, HashMap files, Map placeToMaskedSymbol, @@ -3512,7 +3512,7 @@ public class XFLConverter { } writer.writeEndElement(); - } + } private boolean getMorphshapeTimeline(int morphShapeId, ReadOnlyTagList tags, List outTimelineTags) { int morphDepth = -2; @@ -3571,12 +3571,11 @@ public class XFLConverter { } private void extractMultiUsageMorphShapes( - Reference lastImportedId, Map characterNameMap, + Reference lastImportedId, Map characterNameMap, XFLXmlWriter writer, SWF swf, List nonLibraryShapes, String backgroundColor, - FLAVersion flaVersion, HashMap files, List multiUsageMorphShapes, @@ -3637,7 +3636,6 @@ public class XFLConverter { Reference nextClipId, List nonLibraryShapes, String backgroundColor, - FLAVersion flaVersion, HashMap files, Map placeToMaskedSymbol, @@ -4483,7 +4481,7 @@ public class XFLConverter { CharacterTag cht = t.getSwf().getCharacter(chid); ret.put(cht, importName); } - } + } } return ret; } @@ -4598,7 +4596,7 @@ public class XFLConverter { fontName = null; textHeight = rec.textHeight; font = ((Tag) tag).getSwf().getFont(fontId); - + if (font != null) { DefineFontNameTag dfn = (DefineFontNameTag) font.getSwf().getCharacterIdTag(font.getCharacterId(), DefineFontNameTag.ID); if (dfn != null) { @@ -4753,13 +4751,13 @@ public class XFLConverter { textColor = det.textColor; } if (det.hasFont) { - String fontName = null; - if (ft != null) { + String fontName = null; + if (ft != null) { DefineFontNameTag dfn = (DefineFontNameTag) ft.getSwf().getCharacterIdTag(ft.getCharacterId(), DefineFontNameTag.ID); if (dfn != null) { fontName = dfn.fontName; - } - + } + if (fontName == null) { fontName = ft.getFontNameIntag(); } @@ -4876,7 +4874,7 @@ public class XFLConverter { } return null; } - + public void convertSWF(AbortRetryIgnoreHandler handler, SWF swf, String swfFileName, String outfile, XFLExportSettings settings, String generator, String generatorVerName, String generatorVersion, boolean parallel, FLAVersion flaVersion, ProgressListener progressListener) throws IOException, InterruptedException { FileAttributesTag fa = swf.getFileAttributes(); @@ -4913,8 +4911,8 @@ public class XFLConverter { final HashMap datfiles = new HashMap<>(); List multiUsageMorphShapes = getMultiUsageMorphShapes(swf.getTags()); List nonLibraryShapes = getNonLibraryShapes(swf, swf.getTags()); - - Set characters = getCharactersAndAllDependent(swf); + + Set characters = getCharactersAndAllDependent(swf); Map characterClasses = getCharacterClasses(characters); String documentClass = swf.getDocumentClass(); Map characterScriptPacks = getCharacterScriptPacks(swf, characterClasses); @@ -4963,18 +4961,14 @@ public class XFLConverter { StatusStack statusStack = new StatusStack(progressListener); - Reference lastImportedId = new Reference<>(0); Map characterNameMap = new IdentityHashMap<>(); - - + convertFonts(lastImportedId, characterNameMap, swf, characters, characterClasses, swf.getTags(), domDocument, statusStack); - - + convertLibrary(characters, lastImportedId, characterNameMap, swf, characterVariables, characterClasses, characterScriptPacks, nonLibraryShapes, backgroundColor, swf.getTags(), files, datfiles, flaVersion, domDocument, placeToMaskedSymbol, multiUsageMorphShapes, statusStack); //domDocument.writeStartElement("timelines"); - ScriptPack documentScriptPack = null; if (documentClass != null) { List packs = swf.getScriptPacksByClassNames(Arrays.asList(documentClass)); @@ -5034,7 +5028,7 @@ public class XFLConverter { Path.createDirectorySafe(cdir); writeFile(handler, Utf8Helper.getBytes(data), scriptsDir.getAbsolutePath() + File.separator + expPath + ".as"); } - } + } } } }