mirror of
https://github.com/BlackMATov/unity-flash-tools.git
synced 2025-12-14 20:21:27 +07:00
SwfTools to dll
This commit is contained in:
@@ -4,5 +4,6 @@ glob:Library/*
|
||||
|
||||
glob:*.sln
|
||||
glob:*.csproj
|
||||
glob:*.userprefs
|
||||
|
||||
glob:.DS_Store
|
||||
|
||||
@@ -5,9 +5,9 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using FlashTools.Internal.SwfTools;
|
||||
using FlashTools.Internal.SwfTools.SwfTags;
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools;
|
||||
using SwfTools.SwfTags;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal {
|
||||
public class SwfPostprocessor : AssetPostprocessor {
|
||||
@@ -289,4 +289,74 @@ namespace FlashTools.Internal {
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
//
|
||||
// Extensions
|
||||
//
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
static class SwfExtensions {
|
||||
public static Matrix4x4 ToUMatrix(this SwfMatrix self) {
|
||||
var mat = Matrix4x4.identity;
|
||||
mat.m00 = self.ScaleX;
|
||||
mat.m10 = self.RotateSkew0;
|
||||
mat.m01 = self.RotateSkew1;
|
||||
mat.m11 = self.ScaleY;
|
||||
mat.m03 = self.TranslateX;
|
||||
mat.m13 = self.TranslateY;
|
||||
return mat;
|
||||
}
|
||||
|
||||
public static SwfBlendModeData ToBlendModeData(this SwfBlendMode self) {
|
||||
switch ( self.Value ) {
|
||||
case SwfBlendMode.Mode.Normal:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
||||
case SwfBlendMode.Mode.Layer:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Layer);
|
||||
case SwfBlendMode.Mode.Multiply:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Multiply);
|
||||
case SwfBlendMode.Mode.Screen:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Screen);
|
||||
case SwfBlendMode.Mode.Lighten:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Lighten);
|
||||
case SwfBlendMode.Mode.Darken:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Darken);
|
||||
case SwfBlendMode.Mode.Difference:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Difference);
|
||||
case SwfBlendMode.Mode.Add:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Add);
|
||||
case SwfBlendMode.Mode.Subtract:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Subtract);
|
||||
case SwfBlendMode.Mode.Invert:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Invert);
|
||||
case SwfBlendMode.Mode.Hardlight:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Hardlight);
|
||||
default:
|
||||
Debug.LogWarningFormat(
|
||||
"<b>[FlashTools]</b> SwfBlendMode. Unsupported blend mode '{0}'",
|
||||
self.Value);
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
||||
}
|
||||
}
|
||||
|
||||
public static SwfColorTransData ToColorTransData(this SwfColorTransform self) {
|
||||
var trans = SwfColorTransData.identity;
|
||||
if ( self.HasAdd ) {
|
||||
trans.addColor = new SwfVec4Data(
|
||||
self.RAdd / 256.0f,
|
||||
self.GAdd / 256.0f,
|
||||
self.BAdd / 256.0f,
|
||||
self.AAdd / 256.0f);
|
||||
}
|
||||
if ( self.HasMul ) {
|
||||
trans.mulColor = new SwfVec4Data(
|
||||
self.RMul / 256.0f,
|
||||
self.GMul / 256.0f,
|
||||
self.BMul / 256.0f,
|
||||
self.AMul / 256.0f);
|
||||
}
|
||||
return trans;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 484a94bbfa1744985a66e8f387d32d00
|
||||
folderAsset: yes
|
||||
timeCreated: 1457862313
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 45e892bdc5efe44c0bef4552f2dcb5b0
|
||||
timeCreated: 1458464395
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 642f43b0b67924926879406770376159
|
||||
timeCreated: 1458066637
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec49e670db02d4006b7722966e96ede6
|
||||
timeCreated: 1457864588
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: add0a02be3196481daaf1fd9828f0f4e
|
||||
timeCreated: 1457819513
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15db74a10abbb4b35ab17143a18753a5
|
||||
folderAsset: yes
|
||||
timeCreated: 1457805943
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ffeb1c85031245dcbcdb64b486fa91c
|
||||
timeCreated: 1472925860
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a86e93cfb4a14b91bca7f9669b7ee7e
|
||||
timeCreated: 1457806192
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93930c1f11b8b4299b5b252c8d1e44cc
|
||||
timeCreated: 1457806180
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8861b3a830cd64ddb8e2b3373a6952dc
|
||||
timeCreated: 1457806126
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c14bd04574d2540f5b4c834e394ff09b
|
||||
timeCreated: 1457806145
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 17f96f9e9841246658fdc871e73cc2cc
|
||||
timeCreated: 1457806154
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8588b2fc4ef4a49cfb422ae16057b33b
|
||||
timeCreated: 1457806164
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c4031f2278a949ea8f13253950a43d6
|
||||
timeCreated: 1457806135
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d3c659fdccfff42f9a79049ed13aab4f
|
||||
timeCreated: 1457806204
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1644c7cd661b049a0afab118c09d69a5
|
||||
timeCreated: 1472819662
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b616323c0469d4e81ba73869b289b21e
|
||||
timeCreated: 1472880545
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5d4c7d7a464b4c44be8b8653686760e
|
||||
timeCreated: 1472880531
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 40db138046cd1449a9e0a3d5020d9963
|
||||
timeCreated: 1472925852
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cfab3868fff1148f3ada0a0bb74b660b
|
||||
timeCreated: 1457806094
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 91d525c5510d747daa79a206efa73ee8
|
||||
timeCreated: 1472655466
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7799f56fc5f01418f99c69da8d177010
|
||||
timeCreated: 1457806214
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6324f9cc87fb24045bbc089ff54e7969
|
||||
timeCreated: 1457806085
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc3acad5d3b2f4f6c85b645acc3ba632
|
||||
timeCreated: 1472881090
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1fd75a14bb004dcbaf692b2cf9b7498
|
||||
timeCreated: 1457806017
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f0b85321c9e164303a2fb2a6106f6699
|
||||
timeCreated: 1457806030
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba536e4ee6b3848948e7208a1cefefdf
|
||||
timeCreated: 1457806006
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20eb1ce1437f24232afac6c8d35d11ef
|
||||
timeCreated: 1472880066
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50a3f4c3646154192b0c4dcb40b315b3
|
||||
timeCreated: 1457806055
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a66815e233fed447f8319dd343167b2e
|
||||
timeCreated: 1457806046
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2e2d082e1df494a31acef10d5e90be69
|
||||
timeCreated: 1472880814
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9ba6ee247270a4e2582be095c59f59bf
|
||||
timeCreated: 1457806076
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 06e82bd9e78964590b8b35dbe6ca47c0
|
||||
timeCreated: 1457806067
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dc12052cbac15441bb21840c82f5ebbc
|
||||
timeCreated: 1457805979
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a50cd5b2e4fdc4596a01180777325faa
|
||||
timeCreated: 1458065417
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dc9919be0498b49659aa77f6da045eb9
|
||||
timeCreated: 1472654295
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15edc6d79a7fc4bbcb127dd779a0bc13
|
||||
timeCreated: 1457806224
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd477bfe9657d4fdfad37644ef25c1c6
|
||||
timeCreated: 1471528636
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6e637f9f090c4acbb2fecefe412c91c
|
||||
folderAsset: yes
|
||||
timeCreated: 1457881315
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,97 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
public struct SwfBlendMode {
|
||||
public enum Mode {
|
||||
Normal, // +
|
||||
Layer, // +
|
||||
Multiply, // +
|
||||
Screen, // +
|
||||
Lighten, // +
|
||||
Darken, // +
|
||||
Difference, // +
|
||||
Add, // +
|
||||
Subtract, // +
|
||||
Invert, // +
|
||||
Alpha, // -
|
||||
Erase, // -
|
||||
Overlay, // +
|
||||
Hardlight // +
|
||||
}
|
||||
public Mode Value;
|
||||
|
||||
public static SwfBlendMode identity {
|
||||
get {
|
||||
return new SwfBlendMode{
|
||||
Value = Mode.Normal};
|
||||
}
|
||||
}
|
||||
|
||||
public static SwfBlendMode Read(SwfStreamReader reader) {
|
||||
var mode_id = reader.ReadByte();
|
||||
return new SwfBlendMode{
|
||||
Value = ModeFromByte(mode_id)};
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"SwfBlendMode. Mode: {0}",
|
||||
Value);
|
||||
}
|
||||
|
||||
public SwfBlendModeData ToBlendModeData() {
|
||||
switch ( Value ) {
|
||||
case Mode.Normal:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
||||
case Mode.Layer:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Layer);
|
||||
case Mode.Multiply:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Multiply);
|
||||
case Mode.Screen:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Screen);
|
||||
case Mode.Lighten:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Lighten);
|
||||
case Mode.Darken:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Darken);
|
||||
case Mode.Difference:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Difference);
|
||||
case Mode.Add:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Add);
|
||||
case Mode.Subtract:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Subtract);
|
||||
case Mode.Invert:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Invert);
|
||||
case Mode.Hardlight:
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Hardlight);
|
||||
default:
|
||||
Debug.LogWarningFormat(
|
||||
"<b>[FlashTools]</b> SwfBlendMode. Unsupported blend mode '{0}'",
|
||||
Value);
|
||||
return new SwfBlendModeData(SwfBlendModeData.Types.Normal);
|
||||
}
|
||||
}
|
||||
|
||||
static Mode ModeFromByte(byte mode_id) {
|
||||
switch ( mode_id ) {
|
||||
case 0: // Mode.Normal too
|
||||
case 1: return Mode.Normal;
|
||||
case 2: return Mode.Layer;
|
||||
case 3: return Mode.Multiply;
|
||||
case 4: return Mode.Screen;
|
||||
case 5: return Mode.Lighten;
|
||||
case 6: return Mode.Darken;
|
||||
case 7: return Mode.Difference;
|
||||
case 8: return Mode.Add;
|
||||
case 9: return Mode.Subtract;
|
||||
case 10: return Mode.Invert;
|
||||
case 11: return Mode.Alpha;
|
||||
case 12: return Mode.Erase;
|
||||
case 13: return Mode.Overlay;
|
||||
case 14: return Mode.Hardlight;
|
||||
default:
|
||||
throw new UnityException(string.Format(
|
||||
"Incorrect blend mode id: {0}", mode_id));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1f87ec74e6af540748af80d4a1cc1b49
|
||||
timeCreated: 1457882212
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1daabaaa9d07a4d9184fe8dd1928803f
|
||||
timeCreated: 1457881505
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3bdf80e6c1ea34969a12400fa1a4a03b
|
||||
timeCreated: 1457881354
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f85807ea0dc87404983006ba9b04ebb7
|
||||
timeCreated: 1457881474
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 904b18edf65b7485fb93fdeec65e93d3
|
||||
timeCreated: 1457881525
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 392129356a8e143989e89d24bb52060e
|
||||
timeCreated: 1457976003
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b6ee0fe9207424e20a8f928a9d72df91
|
||||
timeCreated: 1457881396
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0843850979784e0eb2ef2e2f7d3ef8c
|
||||
timeCreated: 1457881450
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce2e00762eae848eeab3f543b6ccd368
|
||||
timeCreated: 1457881342
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9ad135e326c424eb2a9bb593525c4192
|
||||
timeCreated: 1457881438
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,41 +0,0 @@
|
||||
using UnityEngine;
|
||||
using System.IO;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
public struct SwfShortHeader {
|
||||
public string Format;
|
||||
public byte Version;
|
||||
public uint FileLength;
|
||||
|
||||
public static SwfShortHeader Read(SwfStreamReader reader) {
|
||||
var header = new SwfShortHeader();
|
||||
header.Format = new string(reader.ReadChars(3));
|
||||
header.Version = reader.ReadByte();
|
||||
header.FileLength = reader.ReadUInt32();
|
||||
return header;
|
||||
}
|
||||
|
||||
public void Write(Stream stream) {
|
||||
if ( Format == null || Format.Length != 3 ) {
|
||||
throw new UnityException(string.Format(
|
||||
"Incorrect SwfShortHeader Format: {0}",
|
||||
Format));
|
||||
}
|
||||
stream.WriteByte((byte)Format[0]);
|
||||
stream.WriteByte((byte)Format[1]);
|
||||
stream.WriteByte((byte)Format[2]);
|
||||
stream.WriteByte(Version);
|
||||
stream.WriteByte((byte)((FileLength >> 0) & 0xFF));
|
||||
stream.WriteByte((byte)((FileLength >> 8) & 0xFF));
|
||||
stream.WriteByte((byte)((FileLength >> 16) & 0xFF));
|
||||
stream.WriteByte((byte)((FileLength >> 24) & 0xFF));
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"SwfShortHeader. " +
|
||||
"Format: {0}, Version: {1}, FileLength: {2}",
|
||||
Format, Version, FileLength);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 669a2dd77726b497aab3e816c280e023
|
||||
timeCreated: 1457881385
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,12 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9160ac10286e843ccb7fae733e9de5d8
|
||||
timeCreated: 1457881516
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools {
|
||||
namespace SwfTools {
|
||||
|
||||
using LibraryDefines = SortedDictionary<ushort, SwfLibraryDefine>;
|
||||
using DisplayInstances = SortedDictionary<ushort, SwfDisplayInstance>;
|
||||
@@ -1,10 +1,10 @@
|
||||
using UnityEngine;
|
||||
using System.Linq;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using FlashTools.Internal.SwfTools.SwfTags;
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools {
|
||||
using SwfTools.SwfTags;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace SwfTools {
|
||||
public class SwfContextExecuter : SwfTagVisitor<SwfDisplayList, SwfDisplayList> {
|
||||
public SwfLibrary Library = null;
|
||||
public int CurrentTag = 0;
|
||||
@@ -18,7 +18,6 @@ namespace FlashTools.Internal.SwfTools {
|
||||
dl.FrameName = string.Empty;
|
||||
while ( CurrentTag < tags.Count ) {
|
||||
var tag = tags[CurrentTag++];
|
||||
TagToDebugLog(tag);
|
||||
tag.AcceptVistor(this, dl);
|
||||
if ( tag.TagType == SwfTagType.ShowFrame ) {
|
||||
ChildrenNextFrameLooped(dl);
|
||||
@@ -53,12 +52,8 @@ namespace FlashTools.Internal.SwfTools {
|
||||
}
|
||||
|
||||
public SwfDisplayList Visit(PlaceObject2Tag tag, SwfDisplayList dl) {
|
||||
var is_shape = tag.HasCharacter
|
||||
? Library.HasDefine<SwfLibraryShapeDefine >(tag.CharacterId)
|
||||
: false;
|
||||
var is_sprite = tag.HasCharacter
|
||||
? Library.HasDefine<SwfLibrarySpriteDefine>(tag.CharacterId)
|
||||
: false;
|
||||
var is_shape = tag.HasCharacter && Library.HasDefine<SwfLibraryShapeDefine >(tag.CharacterId);
|
||||
var is_sprite = tag.HasCharacter && Library.HasDefine<SwfLibrarySpriteDefine>(tag.CharacterId);
|
||||
if ( tag.HasCharacter ) {
|
||||
SwfDisplayInstance old_inst = null;
|
||||
if ( tag.Move ) { // replace character
|
||||
@@ -102,12 +97,8 @@ namespace FlashTools.Internal.SwfTools {
|
||||
}
|
||||
|
||||
public SwfDisplayList Visit(PlaceObject3Tag tag, SwfDisplayList dl) {
|
||||
var is_shape = tag.HasCharacter
|
||||
? Library.HasDefine<SwfLibraryShapeDefine >(tag.CharacterId)
|
||||
: false;
|
||||
var is_sprite = tag.HasCharacter
|
||||
? Library.HasDefine<SwfLibrarySpriteDefine>(tag.CharacterId)
|
||||
: false;
|
||||
var is_shape = tag.HasCharacter && Library.HasDefine<SwfLibraryShapeDefine >(tag.CharacterId);
|
||||
var is_sprite = tag.HasCharacter && Library.HasDefine<SwfLibrarySpriteDefine>(tag.CharacterId);
|
||||
if ( tag.HasCharacter ) {
|
||||
SwfDisplayInstance old_inst = null;
|
||||
if ( tag.Move ) { // replace character
|
||||
@@ -373,13 +364,5 @@ namespace FlashTools.Internal.SwfTools {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TagToDebugLog(SwfTagBase tag) {
|
||||
if ( tag is UnsupportedTag || tag is UnknownTag ) {
|
||||
Debug.LogWarningFormat(
|
||||
"<b>[FlashTools]</b> SwfContextExecuter. {0}",
|
||||
tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
using UnityEngine;
|
||||
using System.IO;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using FlashTools.Internal.SwfTools.SwfTags;
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools {
|
||||
using SwfTools.SwfTags;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace SwfTools {
|
||||
public class SwfDecoder {
|
||||
public SwfShortHeader OriginalHeader;
|
||||
public SwfLongHeader UncompressedHeader;
|
||||
@@ -30,12 +30,12 @@ namespace FlashTools.Internal.SwfTools {
|
||||
Version = OriginalHeader.Version,
|
||||
FileLength = OriginalHeader.FileLength};
|
||||
var uncompressed_stream = new MemoryStream();
|
||||
new_short_header.Write(uncompressed_stream);
|
||||
SwfShortHeader.Write(new_short_header, uncompressed_stream);
|
||||
rest_stream.WriteTo(uncompressed_stream);
|
||||
uncompressed_stream.Position = 0;
|
||||
return uncompressed_stream;
|
||||
default:
|
||||
throw new UnityException(string.Format(
|
||||
throw new System.Exception(string.Format(
|
||||
"Unsupported swf format: {0}", OriginalHeader.Format));
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Ionic.Zlib;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools {
|
||||
namespace SwfTools {
|
||||
public class SwfStreamReader {
|
||||
struct BitContext {
|
||||
public byte CachedByte;
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineBinaryDataTag : SwfTagBase {
|
||||
public ushort Tag;
|
||||
public byte[] Data;
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineBitsLossless2Tag : SwfTagBase {
|
||||
public ushort CharacterId;
|
||||
public byte BitmapFormat;
|
||||
@@ -51,7 +49,7 @@ namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
}
|
||||
} else {
|
||||
//TODO: IMPLME
|
||||
throw new UnityException(string.Format(
|
||||
throw new System.Exception(string.Format(
|
||||
"Unsupported DefineBitsLossless2 Format: {0}", BitmapFormat));
|
||||
}
|
||||
return result;
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineBitsLosslessTag : SwfTagBase {
|
||||
public ushort CharacterId;
|
||||
public byte BitmapFormat;
|
||||
@@ -51,7 +49,7 @@ namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
}
|
||||
} else {
|
||||
//TODO: IMPLME
|
||||
throw new UnityException(string.Format(
|
||||
throw new System.Exception(string.Format(
|
||||
"Unsupported DefineBitsLossless Format: {0}", BitmapFormat));
|
||||
}
|
||||
return result;
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineSceneAndFrameLabelDataTag : SwfTagBase {
|
||||
public struct SceneOffsetData {
|
||||
public uint Offset;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineShape2Tag : SwfTagBase {
|
||||
public ushort ShapeId;
|
||||
public SwfRect ShapeBounds;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineShape3Tag : SwfTagBase {
|
||||
public ushort ShapeId;
|
||||
public SwfRect ShapeBounds;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineShape4Tag : SwfTagBase {
|
||||
public ushort ShapeId;
|
||||
public SwfRect ShapeBounds;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineShapeTag : SwfTagBase {
|
||||
public ushort ShapeId;
|
||||
public SwfRect ShapeBounds;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DefineSpriteTag : SwfTagBase {
|
||||
public ushort SpriteId;
|
||||
public ushort FrameCount;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class DoABCTag : SwfTagBase {
|
||||
public bool ExecuteImmediately;
|
||||
public string Name;
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class EnableDebugger2Tag : SwfTagBase {
|
||||
public string MD5PasswordHash;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class EnableDebuggerTag : SwfTagBase {
|
||||
public string MD5PasswordHash;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class EnableTelemetryTag : SwfTagBase {
|
||||
public byte[] SHA256PasswordHash;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class EndTag : SwfTagBase {
|
||||
public override SwfTagType TagType {
|
||||
get { return SwfTagType.End; }
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class ExportAssetsTag : SwfTagBase {
|
||||
public struct AssetTagData {
|
||||
public ushort Tag;
|
||||
@@ -26,7 +26,7 @@ namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
|
||||
public static ExportAssetsTag Create(SwfStreamReader reader) {
|
||||
var asset_tag_count = reader.ReadUInt16();
|
||||
var asset_tags = new List<AssetTagData>((int)asset_tag_count);
|
||||
var asset_tags = new List<AssetTagData>(asset_tag_count);
|
||||
for ( var i = 0; i < asset_tag_count; ++i ) {
|
||||
asset_tags.Add(new AssetTagData{
|
||||
Tag = reader.ReadUInt16(),
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class FileAttributesTag : SwfTagBase {
|
||||
public override SwfTagType TagType {
|
||||
get { return SwfTagType.FileAttributes; }
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class FrameLabelTag : SwfTagBase {
|
||||
public string Name;
|
||||
public byte AnchorFlag;
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class MetadataTag : SwfTagBase {
|
||||
public string Metadata;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Text;
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class PlaceObject2Tag : SwfTagBase {
|
||||
public bool HasClipActions;
|
||||
public bool HasClipDepth;
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Text;
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class PlaceObject3Tag : SwfTagBase {
|
||||
public bool HasClipActions;
|
||||
public bool HasClipDepth;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class PlaceObjectTag : SwfTagBase {
|
||||
public ushort CharacterId;
|
||||
public ushort Depth;
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class ProtectTag : SwfTagBase {
|
||||
public string MD5Password;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"ProtectTag." +
|
||||
"ProtectTag. " +
|
||||
"MD5Password: {0}",
|
||||
MD5Password);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class RemoveObject2Tag : SwfTagBase {
|
||||
public ushort Depth;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class RemoveObjectTag : SwfTagBase {
|
||||
public ushort CharacterId;
|
||||
public ushort Depth;
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class ScriptLimitsTag : SwfTagBase {
|
||||
public ushort MaxRecursionDepth;
|
||||
public ushort ScriptTimeoutSeconds;
|
||||
@@ -1,6 +1,6 @@
|
||||
using FlashTools.Internal.SwfTools.SwfTypes;
|
||||
using SwfTools.SwfTypes;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class SetBackgroundColorTag : SwfTagBase {
|
||||
public SwfColor BackgroundColor;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class ShowFrameTag : SwfTagBase {
|
||||
public override SwfTagType TagType {
|
||||
get { return SwfTagType.ShowFrame; }
|
||||
@@ -1,34 +1,34 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public enum SwfTagType {
|
||||
// -----------------------------
|
||||
// Display list
|
||||
// -----------------------------
|
||||
|
||||
PlaceObject = 4,
|
||||
PlaceObject2 = 26,
|
||||
PlaceObject3 = 70,
|
||||
RemoveObject = 5,
|
||||
PlaceObject = 4,
|
||||
PlaceObject2 = 26,
|
||||
PlaceObject3 = 70,
|
||||
RemoveObject = 5,
|
||||
RemoveObject2 = 28,
|
||||
ShowFrame = 1,
|
||||
ShowFrame = 1,
|
||||
|
||||
// -----------------------------
|
||||
// Control
|
||||
// -----------------------------
|
||||
|
||||
SetBackgroundColor = 9,
|
||||
FrameLabel = 43,
|
||||
Protect = 24,
|
||||
End = 0,
|
||||
ExportAssets = 56,
|
||||
ImportAssets = 57, // Unsupported
|
||||
EnableDebugger = 58,
|
||||
EnableDebugger2 = 64,
|
||||
ScriptLimits = 65,
|
||||
SetTabIndex = 66, // Unsupported
|
||||
ImportAssets2 = 71, // Unsupported
|
||||
SymbolClass = 76,
|
||||
Metadata = 77,
|
||||
DefineScalingGrid = 78, // Unsupported
|
||||
SetBackgroundColor = 9,
|
||||
FrameLabel = 43,
|
||||
Protect = 24,
|
||||
End = 0,
|
||||
ExportAssets = 56,
|
||||
ImportAssets = 57, // Unsupported
|
||||
EnableDebugger = 58,
|
||||
EnableDebugger2 = 64,
|
||||
ScriptLimits = 65,
|
||||
SetTabIndex = 66, // Unsupported
|
||||
ImportAssets2 = 71, // Unsupported
|
||||
SymbolClass = 76,
|
||||
Metadata = 77,
|
||||
DefineScalingGrid = 78, // Unsupported
|
||||
DefineSceneAndFrameLabelData = 86,
|
||||
|
||||
// -----------------------------
|
||||
@@ -121,8 +121,8 @@
|
||||
// Metadata
|
||||
// -----------------------------
|
||||
|
||||
FileAttributes = 69,
|
||||
EnableTelemetry = 93,
|
||||
FileAttributes = 69,
|
||||
EnableTelemetry = 93,
|
||||
DefineBinaryData = 87,
|
||||
|
||||
// -----------------------------
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public interface SwfTagVisitor<TArg, TResult> {
|
||||
TResult Visit(PlaceObjectTag tag, TArg arg);
|
||||
TResult Visit(PlaceObject2Tag tag, TArg arg);
|
||||
@@ -6,6 +6,7 @@
|
||||
TResult Visit(RemoveObjectTag tag, TArg arg);
|
||||
TResult Visit(RemoveObject2Tag tag, TArg arg);
|
||||
TResult Visit(ShowFrameTag tag, TArg arg);
|
||||
|
||||
TResult Visit(SetBackgroundColorTag tag, TArg arg);
|
||||
TResult Visit(FrameLabelTag tag, TArg arg);
|
||||
TResult Visit(ProtectTag tag, TArg arg);
|
||||
@@ -17,17 +18,23 @@
|
||||
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);
|
||||
TResult Visit(DefineShape2Tag tag, TArg arg);
|
||||
TResult Visit(DefineShape3Tag tag, TArg arg);
|
||||
TResult Visit(DefineShape4Tag tag, TArg arg);
|
||||
|
||||
TResult Visit(DefineBitsLosslessTag tag, TArg arg);
|
||||
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);
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class SymbolClassTag : SwfTagBase {
|
||||
public struct SymbolTagData {
|
||||
public ushort Tag;
|
||||
@@ -26,7 +26,7 @@ namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
|
||||
public static SymbolClassTag Create(SwfStreamReader reader) {
|
||||
var symbol_tag_count = reader.ReadUInt16();
|
||||
var symbol_tags = new List<SymbolTagData>((int)symbol_tag_count);
|
||||
var symbol_tags = new List<SymbolTagData>(symbol_tag_count);
|
||||
for ( var i = 0; i < symbol_tag_count; ++i ) {
|
||||
symbol_tags.Add(new SymbolTagData{
|
||||
Tag = reader.ReadUInt16(),
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class UnknownTag : SwfTagBase {
|
||||
public int _tagId;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTags {
|
||||
namespace SwfTools.SwfTags {
|
||||
public class UnsupportedTag : SwfTagBase {
|
||||
SwfTagType _tagType;
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"{0}. Unsupported tag!",
|
||||
"UnsupportedTag. " +
|
||||
"TagType: {0}",
|
||||
TagType);
|
||||
}
|
||||
|
||||
65
FTSources/SwfTools/Sources/SwfTypes/SwfBlendMode.cs
Normal file
65
FTSources/SwfTools/Sources/SwfTypes/SwfBlendMode.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfBlendMode {
|
||||
public enum Mode {
|
||||
Normal,
|
||||
Layer,
|
||||
Multiply,
|
||||
Screen,
|
||||
Lighten,
|
||||
Darken,
|
||||
Difference,
|
||||
Add,
|
||||
Subtract,
|
||||
Invert,
|
||||
Alpha,
|
||||
Erase,
|
||||
Overlay,
|
||||
Hardlight
|
||||
}
|
||||
public Mode Value;
|
||||
|
||||
public static SwfBlendMode identity {
|
||||
get {
|
||||
return new SwfBlendMode{
|
||||
Value = Mode.Normal};
|
||||
}
|
||||
}
|
||||
|
||||
public static SwfBlendMode Read(SwfStreamReader reader) {
|
||||
var mode_id = reader.ReadByte();
|
||||
return new SwfBlendMode{
|
||||
Value = ModeFromByte(mode_id)};
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"SwfBlendMode. " +
|
||||
"Mode: {0}",
|
||||
Value);
|
||||
}
|
||||
|
||||
static Mode ModeFromByte(byte mode_id) {
|
||||
switch ( mode_id ) {
|
||||
case 0: // Mode.Normal too
|
||||
case 1: return Mode.Normal;
|
||||
case 2: return Mode.Layer;
|
||||
case 3: return Mode.Multiply;
|
||||
case 4: return Mode.Screen;
|
||||
case 5: return Mode.Lighten;
|
||||
case 6: return Mode.Darken;
|
||||
case 7: return Mode.Difference;
|
||||
case 8: return Mode.Add;
|
||||
case 9: return Mode.Subtract;
|
||||
case 10: return Mode.Invert;
|
||||
case 11: return Mode.Alpha;
|
||||
case 12: return Mode.Erase;
|
||||
case 13: return Mode.Overlay;
|
||||
case 14: return Mode.Hardlight;
|
||||
default:
|
||||
throw new System.Exception(string.Format(
|
||||
"Incorrect blend mode id: {0}",
|
||||
mode_id));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfClipActions {
|
||||
public static SwfClipActions identity {
|
||||
get {
|
||||
@@ -9,7 +7,7 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
}
|
||||
|
||||
public static SwfClipActions Read(SwfStreamReader reader) {
|
||||
throw new UnityException("Clip actions is unsupported");
|
||||
throw new System.Exception("Clip actions is unsupported");
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfColor {
|
||||
public byte R;
|
||||
public byte G;
|
||||
@@ -31,7 +29,8 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"SwfColor. R: {0}, G: {1}, B: {2}, A: {3}",
|
||||
"SwfColor. " +
|
||||
"R: {0}, G: {1}, B: {2}, A: {3}",
|
||||
R, G, B, A);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfColorTransform {
|
||||
public short RMul;
|
||||
public short GMul;
|
||||
@@ -58,24 +56,5 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
RMul, GMul, GMul, AMul, HasMul,
|
||||
RAdd, GAdd, BAdd, AAdd, HasAdd);
|
||||
}
|
||||
|
||||
public SwfColorTransData ToColorTransData() {
|
||||
var trans = SwfColorTransData.identity;
|
||||
if ( HasAdd ) {
|
||||
trans.addColor = new SwfVec4Data(
|
||||
RAdd / 256.0f,
|
||||
GAdd / 256.0f,
|
||||
BAdd / 256.0f,
|
||||
AAdd / 256.0f);
|
||||
}
|
||||
if ( HasMul ) {
|
||||
trans.mulColor = new SwfVec4Data(
|
||||
RMul / 256.0f,
|
||||
GMul / 256.0f,
|
||||
BMul / 256.0f,
|
||||
AMul / 256.0f);
|
||||
}
|
||||
return trans;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using FlashTools.Internal.SwfTools.SwfTags;
|
||||
using SwfTools.SwfTags;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfControlTags {
|
||||
public List<SwfTagBase> Tags;
|
||||
|
||||
@@ -26,7 +26,8 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"SwfControlTags. Tags: {0}",
|
||||
"SwfControlTags. " +
|
||||
"Tags: {0}",
|
||||
Tags.Count);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfFillStyleType {
|
||||
public enum Type {
|
||||
SolidColor,
|
||||
@@ -29,7 +27,8 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format(
|
||||
"SwfFillStyleType. Type: {0}",
|
||||
"SwfFillStyleType. " +
|
||||
"Type: {0}",
|
||||
Value);
|
||||
}
|
||||
|
||||
@@ -65,8 +64,9 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
case 0x42: return Type.NonSmoothedRepeatingBitmap;
|
||||
case 0x43: return Type.NonSmoothedClippedBitmap;
|
||||
default:
|
||||
throw new UnityException(string.Format(
|
||||
"Incorrect fill stype type id: {0}", type_id));
|
||||
throw new System.Exception(string.Format(
|
||||
"Incorrect fill stype type id: {0}",
|
||||
type_id));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfLongHeader {
|
||||
public SwfShortHeader ShortHeader;
|
||||
public SwfRect FrameSize;
|
||||
@@ -6,12 +6,11 @@
|
||||
public ushort FrameCount;
|
||||
|
||||
public static SwfLongHeader Read(SwfStreamReader reader) {
|
||||
var header = new SwfLongHeader();
|
||||
header.ShortHeader = SwfShortHeader.Read(reader);
|
||||
header.FrameSize = SwfRect.Read(reader);
|
||||
header.FrameRate = reader.ReadFixedPoint_8_8();
|
||||
header.FrameCount = reader.ReadUInt16();
|
||||
return header;
|
||||
return new SwfLongHeader{
|
||||
ShortHeader = SwfShortHeader.Read(reader),
|
||||
FrameSize = SwfRect.Read(reader),
|
||||
FrameRate = reader.ReadFixedPoint_8_8(),
|
||||
FrameCount = reader.ReadUInt16()};
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfMatrix {
|
||||
public float ScaleX;
|
||||
public float ScaleY;
|
||||
@@ -58,16 +56,5 @@ namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
RotateSkew0, RotateSkew1,
|
||||
TranslateX, TranslateY);
|
||||
}
|
||||
|
||||
public Matrix4x4 ToUMatrix() {
|
||||
var mat = Matrix4x4.identity;
|
||||
mat.m00 = ScaleX;
|
||||
mat.m10 = RotateSkew0;
|
||||
mat.m01 = RotateSkew1;
|
||||
mat.m11 = ScaleY;
|
||||
mat.m03 = TranslateX;
|
||||
mat.m13 = TranslateY;
|
||||
return mat;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FlashTools.Internal.SwfTools.SwfTypes {
|
||||
namespace SwfTools.SwfTypes {
|
||||
public struct SwfRect {
|
||||
public float XMin;
|
||||
public float XMax;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user