From 8b17ed9b462d79a0f680bddc032ab8c3e2dc2710 Mon Sep 17 00:00:00 2001 From: Exund Date: Sat, 30 Mar 2024 12:55:23 +0100 Subject: [PATCH] Factorize depth to interface --- .../flash/tags/PlaceObject2Tag.java | 5 ++++ .../flash/tags/PlaceObject3Tag.java | 5 ++++ .../flash/tags/PlaceObject4Tag.java | 5 ++++ .../decompiler/flash/tags/PlaceObjectTag.java | 5 ++++ .../flash/tags/RemoveObject2Tag.java | 5 ++++ .../flash/tags/RemoveObjectTag.java | 5 ++++ .../decompiler/flash/tags/base/DepthTag.java | 27 +++++++++++++++++++ .../flash/tags/base/PlaceObjectTypeTag.java | 4 +-- .../decompiler/flash/tags/base/RemoveTag.java | 4 +-- 9 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/DepthTag.java 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 e24820680..896de9b6b 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 @@ -331,6 +331,11 @@ public class PlaceObject2Tag extends PlaceObjectTypeTag implements ASMSourceCont return depth; } + @Override + public void setDepth(int depth) { + this.depth = depth; + } + @Override public MATRIX getMatrix() { if (placeFlagHasMatrix) { 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 c6b0c3ba5..7fc6502f1 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 @@ -518,6 +518,11 @@ public class PlaceObject3Tag extends PlaceObjectTypeTag implements ASMSourceCont return depth; } + @Override + public void setDepth(int depth) { + this.depth = depth; + } + @Override public MATRIX getMatrix() { if (placeFlagHasMatrix) { 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 791f571fc..9f2253ff0 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 @@ -539,6 +539,11 @@ public class PlaceObject4Tag extends PlaceObjectTypeTag implements ASMSourceCont return depth; } + @Override + public void setDepth(int depth) { + this.depth = depth; + } + @Override public MATRIX getMatrix() { if (placeFlagHasMatrix) { 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 6803d26a7..42f830023 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 @@ -173,6 +173,11 @@ public class PlaceObjectTag extends PlaceObjectTypeTag { return depth; } + @Override + public void setDepth(int depth) { + this.depth = depth; + } + @Override public MATRIX getMatrix() { return matrix; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObject2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObject2Tag.java index 0cd32ce69..bdb4540b1 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObject2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/RemoveObject2Tag.java @@ -81,4 +81,9 @@ public class RemoveObject2Tag extends RemoveTag { public int getDepth() { return depth; } + + @Override + public void setDepth(int depth) { + this.depth = depth; + } } 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 75ad54643..52ab45e56 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 @@ -97,6 +97,11 @@ public class RemoveObjectTag extends RemoveTag implements CharacterIdTag { return depth; } + @Override + public void setDepth(int depth) { + this.depth = depth; + } + @Override public int getCharacterId() { return characterId; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/DepthTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/DepthTag.java new file mode 100644 index 000000000..7551f257d --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/DepthTag.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2010-2023 JPEXS, All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3.0 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + */ +package com.jpexs.decompiler.flash.tags.base; + +/** + * + * @author JPEXS + */ +public interface DepthTag { + public int getDepth(); + + public void setDepth(int depth); +} diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/PlaceObjectTypeTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/PlaceObjectTypeTag.java index a0f0c04f9..1399cea48 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/PlaceObjectTypeTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/PlaceObjectTypeTag.java @@ -34,7 +34,7 @@ import java.util.Objects; * * @author JPEXS */ -public abstract class PlaceObjectTypeTag extends Tag implements CharacterIdTag { +public abstract class PlaceObjectTypeTag extends Tag implements CharacterIdTag, DepthTag { public PlaceObjectTypeTag(SWF swf, int id, String name, ByteArrayRange data) { super(swf, id, name, data); @@ -42,8 +42,6 @@ public abstract class PlaceObjectTypeTag extends Tag implements CharacterIdTag { public abstract int getPlaceObjectNum(); - public abstract int getDepth(); - public abstract MATRIX getMatrix(); public abstract void setMatrix(MATRIX matrix); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/RemoveTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/RemoveTag.java index 5d28bf314..55dc3ccf5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/RemoveTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/RemoveTag.java @@ -24,14 +24,12 @@ import com.jpexs.helpers.ByteArrayRange; * * @author JPEXS */ -public abstract class RemoveTag extends Tag { +public abstract class RemoveTag extends Tag implements DepthTag { public RemoveTag(SWF swf, int id, String name, ByteArrayRange data) { super(swf, id, name, data); } - public abstract int getDepth(); - @Override public String getName() { String result = super.getName();