add some tags

This commit is contained in:
2016-09-03 12:36:35 +07:00
parent afe588ef47
commit e83e88bf5a
18 changed files with 338 additions and 9 deletions

View File

@@ -58,6 +58,7 @@
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfContextExecuter.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfDecoder.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfStreamReader.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\DefineBinaryDataTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\DefineBitsLossless2Tag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\DefineBitsLosslessTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\DefineSceneAndFrameLabelDataTag.cs" />
@@ -67,15 +68,21 @@
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\DefineShapeTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\DefineSpriteTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\DoABCTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\EnableDebugger2Tag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\EnableDebuggerTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\EnableTelemetryTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\EndTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\ExportAssetsTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\FileAttributesTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\FrameLabelTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\MetadataTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\PlaceObject2Tag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\PlaceObject3Tag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\PlaceObjectTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\ProtectTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\RemoveObject2Tag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\RemoveObjectTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\ScriptLimitsTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\SetBackgroundColorTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\ShowFrameTag.cs" />
<Compile Include="Assets\FlashTools\Scripts\Internal\Editor\SwfTools\SwfTags\SwfTagBase.cs" />

View File

@@ -170,6 +170,10 @@ namespace FlashTools.Internal.SwfTools {
return dl;
}
public SwfDisplayList Visit(ProtectTag tag, SwfDisplayList dl) {
return dl;
}
public SwfDisplayList Visit(EndTag tag, SwfDisplayList dl) {
return dl;
}
@@ -184,6 +188,18 @@ namespace FlashTools.Internal.SwfTools {
return dl;
}
public SwfDisplayList Visit(EnableDebuggerTag tag, SwfDisplayList dl) {
return dl;
}
public SwfDisplayList Visit(EnableDebugger2Tag tag, SwfDisplayList dl) {
return dl;
}
public SwfDisplayList Visit(ScriptLimitsTag tag, SwfDisplayList dl) {
return dl;
}
public SwfDisplayList Visit(SymbolClassTag tag, SwfDisplayList dl) {
foreach ( var symbol_tag in tag.SymbolTags ) {
var define = Library.FindDefine<SwfLibraryDefine>(symbol_tag.Tag);
@@ -194,6 +210,10 @@ namespace FlashTools.Internal.SwfTools {
return dl;
}
public SwfDisplayList Visit(MetadataTag tag, SwfDisplayList dl) {
return dl;
}
public SwfDisplayList Visit(DefineSceneAndFrameLabelDataTag tag, SwfDisplayList dl) {
return dl;
}
@@ -251,6 +271,15 @@ namespace FlashTools.Internal.SwfTools {
return dl;
}
public SwfDisplayList Visit(EnableTelemetryTag tag, SwfDisplayList dl) {
return dl;
}
public SwfDisplayList Visit(DefineBinaryDataTag tag, SwfDisplayList dl) {
//TODO: IMPLME
return dl;
}
public SwfDisplayList Visit(UnknownTag tag, SwfDisplayList dl) {
return dl;
}

View File

@@ -0,0 +1,27 @@
namespace FlashTools.Internal.SwfTools.SwfTags {
public class DefineBinaryDataTag : SwfTagBase {
public ushort Tag;
public byte[] Data;
public override SwfTagType TagType {
get { return SwfTagType.DefineBinaryData; }
}
public override TResult AcceptVistor<TArg, TResult>(SwfTagVisitor<TArg, TResult> visitor, TArg arg) {
return visitor.Visit(this, arg);
}
public override string ToString() {
return "DefineBinaryDataTag.";
}
public static DefineBinaryDataTag Create(SwfStreamReader reader) {
var tag = reader.ReadUInt16();
reader.ReadUInt32(); // reserved
var data = reader.ReadRest();
return new DefineBinaryDataTag{
Tag = tag,
Data = data};
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 6ffeb1c85031245dcbcdb64b486fa91c
timeCreated: 1472925860
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
namespace FlashTools.Internal.SwfTools.SwfTags {
public class EnableDebugger2Tag : SwfTagBase {
public string MD5PasswordHash;
public override SwfTagType TagType {
get { return SwfTagType.EnableDebugger2; }
}
public override TResult AcceptVistor<TArg, TResult>(SwfTagVisitor<TArg, TResult> visitor, TArg arg) {
return visitor.Visit(this, arg);
}
public override string ToString() {
return string.Format(
"EnableDebugger2Tag. " +
"MD5PasswordHash: {0}",
MD5PasswordHash.Length > 0);
}
public static EnableDebugger2Tag Create(SwfStreamReader reader) {
reader.ReadUInt16(); // reserved
var md5 = reader.IsEOF
? string.Empty
: reader.ReadString();
return new EnableDebugger2Tag{
MD5PasswordHash = md5};
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b616323c0469d4e81ba73869b289b21e
timeCreated: 1472880545
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,28 @@
namespace FlashTools.Internal.SwfTools.SwfTags {
public class EnableDebuggerTag : SwfTagBase {
public string MD5PasswordHash;
public override SwfTagType TagType {
get { return SwfTagType.EnableDebugger; }
}
public override TResult AcceptVistor<TArg, TResult>(SwfTagVisitor<TArg, TResult> visitor, TArg arg) {
return visitor.Visit(this, arg);
}
public override string ToString() {
return string.Format(
"EnableDebuggerTag. " +
"MD5PasswordHash: {0}",
MD5PasswordHash.Length > 0);
}
public static EnableDebuggerTag Create(SwfStreamReader reader) {
var md5 = reader.IsEOF
? string.Empty
: reader.ReadString();
return new EnableDebuggerTag{
MD5PasswordHash = md5};
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e5d4c7d7a464b4c44be8b8653686760e
timeCreated: 1472880531
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
namespace FlashTools.Internal.SwfTools.SwfTags {
public class EnableTelemetryTag : SwfTagBase {
public byte[] SHA256PasswordHash;
public override SwfTagType TagType {
get { return SwfTagType.EnableTelemetry; }
}
public override TResult AcceptVistor<TArg, TResult>(SwfTagVisitor<TArg, TResult> visitor, TArg arg) {
return visitor.Visit(this, arg);
}
public override string ToString() {
return string.Format(
"EnableTelemetryTag. " +
"SHA256PasswordHash: {0}",
SHA256PasswordHash.Length > 0);
}
public static EnableTelemetryTag Create(SwfStreamReader reader) {
reader.ReadUInt16(); // reserved
var sha256 = reader.IsEOF
? new byte[0]
: reader.ReadBytes(32);
return new EnableTelemetryTag{
SHA256PasswordHash = sha256};
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 40db138046cd1449a9e0a3d5020d9963
timeCreated: 1472925852
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,25 @@
namespace FlashTools.Internal.SwfTools.SwfTags {
public class MetadataTag : SwfTagBase {
public string Metadata;
public override SwfTagType TagType {
get { return SwfTagType.Metadata; }
}
public override TResult AcceptVistor<TArg, TResult>(SwfTagVisitor<TArg, TResult> visitor, TArg arg) {
return visitor.Visit(this, arg);
}
public override string ToString() {
return string.Format(
"MetadataTag." +
"Metadata: {0}",
Metadata.Length);
}
public static MetadataTag Create(SwfStreamReader reader) {
return new MetadataTag{
Metadata = reader.ReadString()};
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cc3acad5d3b2f4f6c85b645acc3ba632
timeCreated: 1472881090
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,28 @@
namespace FlashTools.Internal.SwfTools.SwfTags {
public class ProtectTag : SwfTagBase {
public string MD5Password;
public override SwfTagType TagType {
get { return SwfTagType.Protect; }
}
public override TResult AcceptVistor<TArg, TResult>(SwfTagVisitor<TArg, TResult> visitor, TArg arg) {
return visitor.Visit(this, arg);
}
public override string ToString() {
return string.Format(
"ProtectTag." +
"MD5Password: {0}",
MD5Password);
}
public static ProtectTag Create(SwfStreamReader reader) {
var md5_password = reader.IsEOF
? string.Empty
: reader.ReadString();
return new ProtectTag{
MD5Password = md5_password};
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 20eb1ce1437f24232afac6c8d35d11ef
timeCreated: 1472880066
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,27 @@
namespace FlashTools.Internal.SwfTools.SwfTags {
public class ScriptLimitsTag : SwfTagBase {
public ushort MaxRecursionDepth;
public ushort ScriptTimeoutSeconds;
public override SwfTagType TagType {
get { return SwfTagType.ScriptLimits; }
}
public override TResult AcceptVistor<TArg, TResult>(SwfTagVisitor<TArg, TResult> visitor, TArg arg) {
return visitor.Visit(this, arg);
}
public override string ToString() {
return string.Format(
"ScriptLimitsTag. " +
"MaxRecursionDepth: {0}, ScriptTimeoutSeconds: {1}",
MaxRecursionDepth, ScriptTimeoutSeconds);
}
public static ScriptLimitsTag Create(SwfStreamReader reader) {
return new ScriptLimitsTag{
MaxRecursionDepth = reader.ReadUInt16(),
ScriptTimeoutSeconds = reader.ReadUInt16()};
}
}
}

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2e2d082e1df494a31acef10d5e90be69
timeCreated: 1472880814
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -17,17 +17,17 @@
SetBackgroundColor = 9,
FrameLabel = 43,
//Protect = 24,
Protect = 24,
End = 0,
ExportAssets = 56,
//ImportAssets = 57,
//EnableDebugger = 58,
//EnableDebugger2 = 64,
//ScriptLimits = 65,
ImportAssets = 57, // Unsupported
EnableDebugger = 58,
EnableDebugger2 = 64,
ScriptLimits = 65,
SetTabIndex = 66, // Unsupported
//ImportAssets2 = 71,
ImportAssets2 = 71, // Unsupported
SymbolClass = 76,
//Metadata = 77,
Metadata = 77,
DefineScalingGrid = 78, // Unsupported
DefineSceneAndFrameLabelData = 86,
@@ -122,8 +122,8 @@
// -----------------------------
FileAttributes = 69,
//EnableTelemetry = 93,
//DefineBinaryData = 87,
EnableTelemetry = 93,
DefineBinaryData = 87,
// -----------------------------
// Unknown
@@ -166,10 +166,17 @@
// Control
case (int)SwfTagType.SetBackgroundColor: return SetBackgroundColorTag.Create(reader);
case (int)SwfTagType.FrameLabel: return FrameLabelTag.Create(reader);
case (int)SwfTagType.Protect: return ProtectTag.Create(reader);
case (int)SwfTagType.End: return EndTag.Create(reader);
case (int)SwfTagType.ExportAssets: return ExportAssetsTag.Create(reader);
case (int)SwfTagType.ImportAssets: return UnsupportedTag.Create(SwfTagType.ImportAssets);
case (int)SwfTagType.EnableDebugger: return EnableDebuggerTag.Create(reader);
case (int)SwfTagType.EnableDebugger2: return EnableDebugger2Tag.Create(reader);
case (int)SwfTagType.ScriptLimits: return ScriptLimitsTag.Create(reader);
case (int)SwfTagType.SetTabIndex: return UnsupportedTag.Create(SwfTagType.SetTabIndex);
case (int)SwfTagType.ImportAssets2: return UnsupportedTag.Create(SwfTagType.ImportAssets2);
case (int)SwfTagType.SymbolClass: return SymbolClassTag.Create(reader);
case (int)SwfTagType.Metadata: return MetadataTag.Create(reader);
case (int)SwfTagType.DefineScalingGrid: return UnsupportedTag.Create(SwfTagType.DefineScalingGrid);
case (int)SwfTagType.DefineSceneAndFrameLabelData: return DefineSceneAndFrameLabelDataTag.Create(reader);
// Actions
@@ -199,6 +206,8 @@
case (int)SwfTagType.VideoFrame: return UnsupportedTag.Create(SwfTagType.VideoFrame);
// Metadata
case (int)SwfTagType.FileAttributes: return FileAttributesTag.Create(reader);
case (int)SwfTagType.EnableTelemetry: return EnableTelemetryTag.Create(reader);
case (int)SwfTagType.DefineBinaryData: return DefineBinaryDataTag.Create(reader);
default: return UnknownTag.Create(tag_data.TagId);
}
}

View File

@@ -8,9 +8,14 @@
TResult Visit(ShowFrameTag tag, TArg arg);
TResult Visit(SetBackgroundColorTag tag, TArg arg);
TResult Visit(FrameLabelTag tag, TArg arg);
TResult Visit(ProtectTag tag, TArg arg);
TResult Visit(EndTag tag, TArg arg);
TResult Visit(ExportAssetsTag tag, TArg arg);
TResult Visit(EnableDebuggerTag tag, TArg arg);
TResult Visit(EnableDebugger2Tag tag, TArg arg);
TResult Visit(ScriptLimitsTag tag, TArg arg);
TResult Visit(SymbolClassTag tag, TArg arg);
TResult Visit(MetadataTag tag, TArg arg);
TResult Visit(DefineSceneAndFrameLabelDataTag tag, TArg arg);
TResult Visit(DoABCTag tag, TArg arg);
TResult Visit(DefineShapeTag tag, TArg arg);
@@ -21,6 +26,8 @@
TResult Visit(DefineBitsLossless2Tag tag, TArg arg);
TResult Visit(DefineSpriteTag tag, TArg arg);
TResult Visit(FileAttributesTag tag, TArg arg);
TResult Visit(EnableTelemetryTag tag, TArg arg);
TResult Visit(DefineBinaryDataTag tag, TArg arg);
TResult Visit(UnknownTag tag, TArg arg);
TResult Visit(UnsupportedTag tag, TArg arg);
}