more horizontal refactoring
[swftools.git] / lib / modules / swfdump.c
index 3dd317c..92cce4f 100644 (file)
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
+#include <stdlib.h>
+#include <stdio.h>
+#include "../rfxswf.h"
+
 void swf_DumpHeader(FILE * f,SWF * swf)
 { if (!f) f = stderr;
   fprintf(f,"File size\t%u\n",swf->fileSize);
@@ -32,9 +36,22 @@ void swf_DumpHeader(FILE * f,SWF * swf)
 
 void swf_DumpMatrix(FILE * f,MATRIX * m)
 { if (!f) f = stderr;
-  fprintf(f,"[%08x][%08x]\n",m->sx,m->r1);
+  /*fprintf(f,"[%08x][%08x]\n",m->sx,m->r1);
   fprintf(f,"[%08x][%08x]\n",m->r0,m->sy);
-  fprintf(f," %08x, %08x\n",m->tx,m->ty);
+  fprintf(f," %08x, %08x\n",m->tx,m->ty);*/
+  fprintf(f,"[%08x][%08x] %5.2f %5.2f %5.2f\n",m->sx,m->r1, m->sx/65536.0,m->r1/65536.0, m->tx/20.0);
+  fprintf(f,"[%08x][%08x] %5.2f %5.2f %5.2f\n",m->r0,m->sy, m->r0/65536.0,m->sy/65536.0, m->ty/20.0 );
+  fprintf(f," %08x, %08x \n",m->tx,m->ty);
+}
+
+void swf_DumpGradient(FILE * f,GRADIENT * g)
+{ if (!f) f = stderr;
+    fprintf(f, "%d gradient steps\n", g->num);
+    int t;
+    for(t=0;t<g->num;t++) {
+       RGBA c = g->rgba[t];
+       fprintf(f, "%d) %02x%02x%02x%02x at %d\n", t, c.r,c.g,c.b,c.a, g->ratios[t]);
+    }
 }
 
 void swf_DumpTag(FILE * f,TAG * t)
@@ -116,8 +133,8 @@ char* swf_TagGetName(TAG*tag)
             return "PLACEOBJECT";
         case ST_REMOVEOBJECT:
             return "REMOVEOBJECT";
-        case ST_DEFINEBITS:
-            return "DEFINEBITS";
+        case ST_DEFINEBITSJPEG:
+            return "DEFINEBITSJPEG";
         case ST_DEFINEBUTTON:
             return "DEFINEBUTTON";
         case ST_JPEGTABLES:
@@ -132,6 +149,10 @@ char* swf_TagGetName(TAG*tag)
             return "DEFINEEDITTEXT";
         case ST_DOACTION:
             return "DOACTION";
+        case ST_DOABC:
+            return "DOABC";
+        case ST_RAWABC:
+            return "RAWABC";
         case ST_DEFINEFONTINFO:
             return "DEFINEFONTINFO";
         case ST_DEFINESOUND:
@@ -182,6 +203,8 @@ char* swf_TagGetName(TAG*tag)
             return "SOUNDSTREAMHEAD2";
         case ST_DEFINEMORPHSHAPE:
             return "DEFINEMORPHSHAPE";
+        case ST_DEFINEMORPHSHAPE2:
+            return "DEFINEMORPHSHAPE2";
         case ST_DEFINEFONT2:
             return "DEFINEFONT2";
         case ST_TEMPLATECOMMAND:
@@ -192,6 +215,10 @@ char* swf_TagGetName(TAG*tag)
             return "EXTERNALFONT";
        case ST_EXPORTASSETS:
            return "EXPORTASSETS";
+       case ST_SYMBOLCLASS:
+           return "SYMBOLCLASS";
+       case ST_DEFINEBINARY:
+           return "DEFINEBINARY";
        case ST_IMPORTASSETS:
            return "IMPORTASSETS";
        case ST_ENABLEDEBUGGER:
@@ -206,6 +233,22 @@ char* swf_TagGetName(TAG*tag)
             return "VIDEOFRAME";
         case ST_DEFINEFONTINFO2:
             return "DEFINEFONTINFO2";
+        case ST_FILEATTRIBUTES:
+            return "FILEATTRIBUTES";
+        case ST_IMPORTASSETS2:
+            return "IMPORTASSETS2";
+        case ST_DEFINESCALINGGRID:
+            return "DEFINESCALINGGRID";
+        case ST_DEFINESHAPE4:
+            return "DEFINESHAPE4";
+        case ST_DEFINEFONT3:
+            return "DEFINEFONT3";
+        case ST_DEFINEFONTALIGNZONES:
+            return "DEFINEFONTALIGNZONES";
+        case ST_DEFINEFONTNAME:
+            return "DEFINEFONTNAME";
+        case ST_CSMTEXTSETTINGS:
+            return "CSMTEXTSETTINGS";
         case ST_FREEALL:
             return "FREEALL";
         case ST_MX4:
@@ -214,6 +257,14 @@ char* swf_TagGetName(TAG*tag)
             return "SCRIPTLIMITS";
         case ST_SETTABINDEX:
             return "SETTABINDEX";
+       case ST_ENABLEDEBUGGER2:
+           return "ENABLEDEBUGGER2";
+       case ST_PLACEOBJECT3:
+           return "PLACEOBJECT3";
+       case ST_METADATA:
+           return "METADATA";
+       case ST_SCENEDESCRIPTION:
+           return "SCENEDESCRIPTION";
         
        case ST_REFLEX:
             return "REFLEX";